DBデータベーススペシャリスト試験 午前Ⅱ

平成28年度春期 データベーススペシャリスト 午前Ⅱ 問3

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

関係R(A,B,C)において,関数従属 A→B,B→C が成立するとき,導けない関数従属はどれか。

選択肢

  1. ア
    {A,B,C}→{A,B}
  2. イ
    {A,C}→{A,B}
  3. ウ
    {A,C}→{A,B,C}
  4. エ
    {B,C}→{A,C}
解き方のヒントを見る

関数従属を段階的に見直す視点

属性どうしの依存関係を整理し、どの属性の組合せが他の属性に影響するかを確認しながら、正規化の段階を順に検討する。

この問題で問われていること

一つの属性または属性集合から別の属性が決まる関係に注目し、その関係がキーとの結び付きや重複の生じ方にどう関係するかを整理する。

視点

まず属性間の依存関係を書き出し、決定する側と決定される側を区別する。その後、キーとの関係、依存の経路、同じ情報の繰り返しに注目して整理する。

確認ポイント

  • 決定する属性と決定される属性を区別できているか
  • キー全体との関係と一部との関係を分けて見ているか
  • 別の属性を経由した依存や情報の重複に気付けるか
正解と解説を見る

正解

エ

解説

関数従属A→B、B→Cから、左辺にAを含む関数従属は増加律や推移律などで導出できる。一方、BとCだけからAを導く根拠は与えられていないため、導けないのはエです。

理由

A→B、B→Cが成立している。左辺に含まれる属性は反射律で導出でき、Aを含む左辺にはA→Bを増加律で適用できる。そのため、Aを含む選択肢では必要な属性を導出できる。

比較

{B,C}からは、反射律によってBとCは扱えるが、与えられた従属はAからB、BからCへ向かう関係であり、Aへ戻る規則はない。したがって、{B,C}→{A,C}は導出できない。

選択肢ア

これは不正解だよ。左辺の{A,B,C}には右辺のAとBがともに含まれているため、反射律によって{A,B,C}→{A,B}が導ける。与えられた関数従属を使わなくても成立する。

選択肢イ

これは不正解だよ。左辺の{A,C}にはAが含まれるので、反射律でAを扱える。また、A→BをCについて増加すると{A,C}→{B,C}が得られ、右辺のBも導出できるため、{A,C}→{A,B}は成立する。

選択肢ウ

これは不正解だよ。左辺の{A,C}に含まれるAとCは反射律で導出でき、A→BをCについて増加すればBも導出できる。したがって、左辺からA、B、Cのすべてを導ける。

選択肢エ(正解)

これは正解だよ。{B,C}からは反射律でBとCを扱えるが、Aを導く関数従属は与えられていない。B→CやA→Bの向きからAを逆算することはできないため、{B,C}→{A,C}は導出できない。

学習のポイント

関数従属の閉包を求め、反射律・増加律・推移律を使って導出可能性を判断する。

出典:独立行政法人 情報処理推進機構(IPA)平成28年度春期 データベーススペシャリスト試験 午前Ⅱ 問3(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針