基本情報技術者試験 - 令和5年公開問題 - 問6
次の関数従属を満足するとき,成立する推移的関数従属はどれか。ここで,“A→B” はBがAに関数従属していることを表し,“A→{ B,C }” は,“A→B” かつ “A→C” が成立することを表す。
〔関数従属〕
{注文コード,商品コード}→{顧客注文数量,注文金額}
注文コード →{注文日,顧客コード,注文担当者コード}
商品コード →{商品名,仕入先コード,商品販売価格}
仕入先コード →{仕入先名,仕入先住所,仕入担当者コード}
顧客コード →{顧客名,顧客住所}
〔関数従属〕
{注文コード,商品コード}→{顧客注文数量,注文金額}
注文コード →{注文日,顧客コード,注文担当者コード}
商品コード →{商品名,仕入先コード,商品販売価格}
仕入先コード →{仕入先名,仕入先住所,仕入担当者コード}
顧客コード →{顧客名,顧客住所}
| ア | 仕入先コード → 仕入担当者コード → 仕入先住所 |
|---|---|
| イ | 商品コード → 仕入先コード → 商品販売価格 |
| ウ | 注文コード → 顧客コード → 顧客住所 |
| エ | 注文コード → 商品コード → 顧客注文数量 |
答え : ウ
分野 : テクノロジ系 › 技術要素 › データベース › データベース設計
解説 :
「推移的関数従属」とは,AがBに関数従属し,さらにBがCに関数従属している場合に,結果としてAがCにも間接的に関数従属している関係のことです。
与えられた関数従属を確認すると,注文コードは顧客コードに関数従属しており,さらに顧客コードは顧客住所に関数従属しています。この二つのつながりから,注文コードは顧客コードを経由して顧客住所にも間接的に関数従属していることになり,これが推移的関数従属に該当するため,正解は選択肢「ウ」です。
「ア」の仕入先コードから仕入担当者コードへの関数従属は成立していますが,仕入担当者コードから仕入先住所への関数従属は与えられた条件の中に示されていないため,この経路は成立しません。
「イ」の商品コードから仕入先コードへの関数従属は成立していますが,仕入先コードから商品販売価格への関数従属も与えられた条件には示されていないため誤りです。
「エ」は注文コードと商品コードの組み合わせが顧客注文数量に関数従属するという内容であり,これは単一の項目間の推移的な関係ではなく,複合キーに対する直接の関数従属であるため,推移的関数従属には該当しません。
分野 : テクノロジ系 › 技術要素 › データベース › データベース設計
解説 :
「推移的関数従属」とは,AがBに関数従属し,さらにBがCに関数従属している場合に,結果としてAがCにも間接的に関数従属している関係のことです。
与えられた関数従属を確認すると,注文コードは顧客コードに関数従属しており,さらに顧客コードは顧客住所に関数従属しています。この二つのつながりから,注文コードは顧客コードを経由して顧客住所にも間接的に関数従属していることになり,これが推移的関数従属に該当するため,正解は選択肢「ウ」です。
「ア」の仕入先コードから仕入担当者コードへの関数従属は成立していますが,仕入担当者コードから仕入先住所への関数従属は与えられた条件の中に示されていないため,この経路は成立しません。
「イ」の商品コードから仕入先コードへの関数従属は成立していますが,仕入先コードから商品販売価格への関数従属も与えられた条件には示されていないため誤りです。
「エ」は注文コードと商品コードの組み合わせが顧客注文数量に関数従属するという内容であり,これは単一の項目間の推移的な関係ではなく,複合キーに対する直接の関数従属であるため,推移的関数従属には該当しません。