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

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

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

問題

関係Rは属性{A,B,C,D,E}から成り,関数従属性A→B,A→C,{C,D}→Eが成立する。最初に属性集合{A,B}を与えて,これらの関数従属性を適用して導出される属性をこの属性集合に加える。この操作を繰り返して得られる属性集合(属性集合の閉包)はどれか。

選択肢

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

関数従属と正規形の確認視点

関数従属と正規形を検討するときは、属性間の依存関係を整理し、どの決定項が何を左右するかを確認します。定義を機械的に当てはめず、前提と例外、属性の役割も意識しましょう。

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

一つの観点として、各属性の値が他の属性を決める関係を、表全体の意味と照らし合わせて整理してください。候補ごとの条件を急いで結論づけず、依存関係の境界に注目します。

視点

属性同士の依存関係を、候補キーや属性の役割と切り分けて整理します。表の意味を保ちながら、依存がどの範囲に及ぶかを確認しましょう。

確認ポイント

  • 決定項と従属する属性を区別して整理する
  • 属性が表す対象や役割を確認する
  • 依存関係が表全体のどの範囲に及ぶかを見る
正解と解説を見る

正解

ア

解説

属性閉包は、開始属性集合から関数従属性を繰り返し適用し、これ以上追加できる属性がなくなるまで求めます。今回はAからCを導出できますが、Dが開始集合にも導出結果にもないため、CとDを左辺とする従属性は適用できません。

理由

開始集合は{A,B}です。A→BはBがすでに含まれており、A→CによってCを追加できます。その後の集合は{A,B,C}となりますが、{C,D}→EにはDが必要です。Dは導出できないため、Eは追加されません。

比較

したがって閉包にはA、B、Cが含まれ、DとEは含まれません。Dを含む選択肢は、開始集合または関数従属性からDが得られるという条件を満たしていません。また、Eだけを加える選択肢も、Eの導出に必要なDが不足しています。

選択肢ア(正解)

これは正解だよ。開始集合{A,B}では、関数従属性A→Cを適用してCを追加できます。A→Bによる新しい追加はなく、{C,D}→EにはDが必要ですがDは得られないため、最終的な閉包は{A,B,C}です。

選択肢イ

これは不正解だよ。{A,B,C,D}とするにはDが開始集合に含まれるか、何らかの関数従属性から導出される必要があります。しかし、示された関数従属性の右辺にDはなく、Dを追加する根拠がありません。

選択肢ウ

これは不正解だよ。Eを導出する関数従属性は{C,D}→Eですが、適用にはCとDの両方が必要です。CはA→Cで得られる一方、Dは得られないため、この条件ではEを追加できません。

選択肢エ

これは不正解だよ。AとBに加えてEを含めるには、Eを導出する{C,D}→Eを適用する必要があります。しかし、その前提となるCとDのうちDが不足しているため、Eだけを追加することはできません。

学習のポイント

関数従属性の左辺が閉包に含まれるかを確認し、追加後に再計算する手順を学びます。

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

関連する過去問一覧

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