DBデータベーススペシャリスト試験 午前Ⅱ
平成25年度春期 データベーススペシャリスト 午前Ⅱ 問2
問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。
問題
選択肢
- アBがAに関数従属し,CがAに関数従属すれば,CはBに関数従属する。
- イBがAの部分集合であり,CがAに関数従属すれば,CはBに関数従属する。
- ウBがAの部分集合であれば,AはBに関数従属する。
- エBとCの和集合がAに関数従属すれば,BとCはそれぞれがAに関数従属する。
解き方のヒントを見る
関数従属と正規形を整理する視点
関数従属と正規形を結び付けて考えるときは、属性間の依存関係を整理し、その依存が表の構造や分解の妥当性にどう関わるかを段階的に確認する。各段階で条件の適用範囲と前提を区別し、用語の定義に沿って検討する。
この問題で問われていること
焦点は、与えられた属性の依存関係をいきなり結論へ結び付けず、決定する側・依存する側・候補キーとの関係を整理してから、正規化の観点で構造上の論点を確認すること。
視点
まず属性間の依存を関係図や表に整理し、キーとの関係、依存の重なり、表構造上の分離可能性を順に見ます。各正規形の判定では、対象となる条件を混同せず、同じ基準で比較することが重要です。
確認ポイント
- 属性同士の依存を、決定側と依存側に分けて整理する
- 候補キーとの関係を確認し、依存の範囲に偏りがないかを見る
- 表の分解や統合が、重複や更新時の不整合に関係するか検討する
正解と解説を見る
正解
エ
解説
関数従属では、決定する属性集合が決まれば、そこから決定される属性集合の値が一意に定まる。和集合への関数従属は各構成属性への関数従属に分解できるため、適切なのはエです。
理由
BとCの和集合がAに関数従属するとは、Aの値が同じ行では、BとCを合わせた値も同じになるということを意味します。したがって、その構成要素であるBだけ、またはCだけについても値は一意に定まり、それぞれAに関数従属する。
比較
関数従属は属性集合の単なる部分集合関係から自動的に導けるものではありません。また、AからBが決まることと、BからAが決まることは別です。決定する側を取り違えず、和集合への従属を構成要素へ分けて考えることが重要です。
選択肢ア
これは不正解だよ。BがAに関数従属し、CもAに関数従属していても、そこからCがBに関数従属するとは限らない。Aが同じならBとCはそれぞれ定まるが、Bの値だけからCの値が一意に定まるとはいえない。
選択肢イ
これは不正解だよ。BがAの部分集合であることは、属性の包含関係を示すだけで、Bの値からCの値が決まることを意味しない。CがAに関数従属していても、決定側をBへ置き換えられる根拠にはならない。
選択肢ウ
これは不正解だよ。BがAの部分集合でも、Bの値だけでA全体の値が一意に定まるとは限らない。一般にはAに含まれる他の属性が異なる行が存在し得るため、部分集合であることから逆向きの関数従属は導けない。
選択肢エ(正解)
これは正解だよ。BとCの和集合がAに関数従属するなら、Aの値が同じ行ではBとCを合わせた値が同じになる。そのため、和集合の一部であるBもCも、それぞれAによって一意に定まり、個別にAに関数従属する。
学習のポイント
関数従属の向きと、属性集合に対する分解の性質を理解する。
出典:独立行政法人 情報処理推進機構(IPA)平成25年度春期 データベーススペシャリスト試験 午前Ⅱ 問2(公式資料:問題冊子(PDF) / 解答例)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針