SkillStack
テクノロジ系4 / 25問

データベーススペシャリスト試験 令和4年度 秋期 午前II 問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}

選択肢を押すと答え合わせができます。

正解と解説を見る

【正解】イ

まずA→{B、C}をA→BとA→Cに分解します。WにはB→CとC→Bがあるので、A→BがあればB→Cを経てA→Cを導けます。反対に、A→CがあればC→Bを経てA→Bを導けます。したがって、A→BとA→Cのどちらか一方を残せば十分です。また、{A、D}→Eがあるので、左辺にCを加えた{A、C、D}→Eは導出でき、冗長です。

XはA→BとB→CからA→Cを導けるため、Wと同じ関数従属を表します。YもA→CとC→BからA→Bを導けるため、Wと同値です。一方、ZではBからCを導く規則がなく、Bの閉包は{B}のままです。さらに、{A、D}からはCを導けないので、{A、C、D}→Eを使って{A、D}→Eを復元することもできません。よって、該当するのはXとYです。

アは、同値なYも該当するため誤りです。

ウは、Yは適切ですが、Wと同値でないZを含み、Xを除いているため誤りです。

エは、ZがWのB→C及び{A、D}→Eを表せないため誤りです。

【ポイント】 冗長性の除去では、対象の関数従属を外しても残りから導出できるかを調べます。 右辺が複数属性なら、初めに右辺を一属性ずつに分解すると判定しやすくなります。 集合を簡略化しても、元の集合と導出できる関数従属が同じである必要があります。

出典:令和4年度 秋期 データベーススペシャリスト試験 午前II 問4
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。

この回の25問を、アプリで通しで解く

  • 本番と同じ問題数・制限時間で通し演習(模試モード)
  • 間違えた問題は自動で「復習すべき問題」に回る
  • 解説で分からない点はAIに質問できる
SkillStackで無料で始める