IPA過去問ドリル

令和4年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問4

テクノロジ/データベース

関係 R (A, B, C, D, E) に対し,関数従属の集合 W={A→{B, C}, {A, D}→E, {A, C, D}→E, B→C, C→B} がある。関数従属の集合 X,Y,Z のうち,W から冗長な関数従属をなくしたものはどれか。 X={A→B, B→C, C→B, {A, D}→E} Y={A→C, B→C, C→B, {A, D}→E} Z={A→B, C→B, {A, C, D}→E}

出典:令和4年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問4

正解:イ

解説

Wには冗長な関数従属が含まれています。A→{B,C}はA→BとA→Cに分解できますが,B→CとC→Bが存在するため,A→BとA→Cは互いに他方から推移律で導出でき,どちらか一方があれば十分です。また{A,C,D}→Eは,A→Cが成り立つため属性Cが余分(左辺の非既約)であり,{A,D}→Eに簡約できます。この結果,A→BとB→C,C→Bと{A,D}→Eを残したXと,A→CとB→C,C→Bと{A,D}→Eを残したYは,いずれも冗長を含まない同値な関数従属の集合となります。

選択肢ごとの解説

  • 誤り。Xだけでなく,A→BをA→Cに置き換えたYも同様に冗長のない同値な集合になるため,Xだけが正解ではありません。
  • 正しい。B→CとC→Bが存在するため,A→BとA→Cは相互に導出可能であり,どちらか一方を残せば冗長がなくなります。したがってXとYの両方が,Wから冗長な関数従属をなくした集合です。
  • 誤り。Zは{A,C,D}→Eを含みますがB→Cを欠いており,元のWからA→Cが導出できなくなるため,Wと同値ではありません。
  • 誤り。ZはB→Cを欠くためWと同値な関数従属集合にならず,正しい簡約結果ではありません。
データベーススペシャリストの過去問を演習モードで解く