令和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}
- アX だけ
- イX と Y
- ウY と Z
- エZ だけ
答えと解説を見る
✓ これが正解イX と Y
解説
X と Y は W と同値で無駄が無く、Z は B→C を導けません。
W から冗長な関数従属をなくした集合は、W と同じ関数従属を全て導けて、しかもどれを外しても導けなくなるものです。W では B→C と C→B があるので、A→B と A→C は一方から他方を導けます。A→{B,C} があれば {A,C,D}→E は {A,D}→E から導けます。X は A→B と B→C から A→C も得られ、W の全てを導けます。Y は A→C と C→B から A→B が得られ、やはり W と同じです。X、Y とも、どれか一つを外すと導けない関数従属が出ます。Z には B→C が無く、B から C を導けないので W と等しくありません。W と同値かどうかと、無駄が残っていないかの二点を確かめるのが手順です。
ほかの選択肢はなぜ違うのか
- アX だけ:X は W と同じ関数従属を導ける冗長の無い集合ですが、Y も同じ条件を満たしています。Y では A→C と C→B から A→B が導けるので、X だけとするのは Y を見落としています。
- ウY と Z:Y は条件を満たしますが、Z は満たしません。Z には B→C が含まれず、他の関数従属を組み合わせても B から C を導けないため、W と同じ関数従属の集合になっていません。
- エZ だけ:Z は {A,C,D}→E を残していますが、B→C を落としているので W から導ける B→C が得られず、A から C も導けません。冗長を取り除いた結果ではなく、必要な関数従属まで失った集合です。
出典:令和4年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問4
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)