令和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
- アX だけ
- イX と Y
- ウY と Z
- エZ だけ
正解:イ
解説
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と同値な関数従属集合にならず,正しい簡約結果ではありません。