関係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だけ |
答え イ
【解説】
集合W = {A→{B, C}, {A, D}→E, {A, C, D}→E, B→C, C→B}のうち、{A, C, D}→Eは{A, D}→Eに含まれるので冗長である。
また、A→{B, C}とB→C、C→B}から、A→{B, C}はA→BかA→Cとしても同じ結果になる。
これから集合W = {A→{B, C}, {A, D}→E, {A, C, D}→E, B→C, C→B}から冗長な関数従属をなくしたものは
X = {A→B, B→C, C→B, {A, D}→E}
か
Y = {A→C, B→C, C→B, {A, D}→E}
になる。
【キーワード】
・冗長