ホーム > データベーススペシャリスト試験 > 2015年

データベーススペシャリスト試験 2015年 午前203


関係Rは属性{A, B, C, D, E}から成り、関数従属A→{B, C}, {C, D}→Eが成立する。これらの関数従属から決定できるRの候補キーはどれか。
{A, C}
{A, C, D}
{A, D}(正解)
{C, D}

解説

問題の整理

関係Rの属性は
{A,B,C,D,E}\{A, B, C, D, E\}
関数従属は以下の2つです。
  1. A{B,C}A \to \{B, C\}
  2. {C,D}E\{C, D\} \to E
この条件から、Rの候補キーを求めよ
(候補キーとは、「その属性集合から関係のすべての属性を関数従属で決定できる最小集合」のことを指します)

関数従属のおさらい

  • XYX \to Y は「属性集合Xが決まれば属性集合Yが一意に定まる」ことを意味する。
  • 属性が関数従属で決定できる属性を含めて閉包をとる。
  • 候補キーは「閉包が全属性集合RRになる最小の属性の集合」。

解説

ステップ1: 属性閉包を計算する

候補キーの候補ごとに、その閉包(属性から推定可能な属性の集合)を調べます。

1. A,C{A, C} の閉包

{A,C}+\{A, C\}^+
  • まずはじめに {A,C}\{A, C\} 自身が含まれます。
  • A{B,C}A \to \{B, C\}より、AABBCC を決める。既にCCは含むので新たにBBも含めます:
{A,C}+={A,C,B}\{A, C\}^+ = \{A, C, B\}
  • 次に {C,D}E\{C, D\} \to E ですが、DDがないため使えません。
  • なので属性閉包は
{A,B,C}\{A, B, C\}
全属性:
{A,B,C,D,E}\{A, B, C, D, E\}
と比べて足りない属性は
{D,E}\{D, E\}
なので、A,C{A, C}は候補キーではない。

2. A,C,D{A, C, D} の閉包

{A,C,D}+\{A, C, D\}^+
  • 最初に {A,C,D}\{A, C, D\} 自体
  • A{B,C}A \to \{B, C\} より BB を加える
{A,C,D}+={A,B,C,D}\{A, C, D\}^+ = \{A, B, C, D\}
  • {C,D}E\{C, D\} \to E より EE を加える(CCDDがあるため)
{A,C,D}+={A,B,C,D,E}\{A, C, D\}^+ = \{A, B, C, D, E\}
よってA,C,D{A, C, D}は全属性{A,B,C,D,E}\{A,B,C,D,E\}を含むので「スーパーキー」です。

3. A,D{A, D} の閉包

{A,D}+\{A, D\}^+
  • 最初に{A,D}\{A, D\}
  • A{B,C}A \to \{B, C\} なので B,CB,Cを加える:
{A,D}+={A,B,C,D}\{A, D\}^+ = \{A, B, C, D\}
  • その上で {C,D}E\{C, D\} \to E が使える。CCDD が揃っているためEEも加える
{A,D}+={A,B,C,D,E}\{A, D\}^+ = \{A, B, C, D, E\}
全属性を含むのでA,D{A,D}もスーパーキーです。

4. C,D{C, D} の閉包

{C,D}+\{C, D\}^+
  • 最初に {C,D}\{C, D\}
  • {C,D}E\{C, D\} \to E より EEを加える
{C,D}+={C,D,E}\{C, D\}^+ = \{C, D, E\}
ただし AABB が欠けているため、全属性RRを決定できない。

ステップ2: 最小性の確認

  • A,C,D{A, C, D}はスーパーキー。
  • A,D{A, D}もスーパーキー。
A,D{A, D}A,C,D{A, C, D}の部分集合なので、より最小である。
  • A,C{A, C}はスーパーキーでない。C,D{C, D}もスーパーキーではない。
従って、候補キーは A,D{A, D}

選択肢との比較

  • ア: A,C{A, C} ・・・ ×(D,E{D, E}を決定できない)
  • イ: A,C,D{A, C, D} ・・・ ○(スーパーキー)
  • ウ: A,D{A, D} ・・・ ○(スーパーキーかつ最小)
  • エ: C,D{C, D} ・・・ ×(A,BA,Bを決定できない)
最小の候補キーはウ: A,D{A, D}

まとめ

  • 候補キーとは、関係のすべての属性を決定可能な最小の属性集合。
  • A,D{A, D} の閉包を計算すると、全属性{A,B,C,D,E}\{A, B, C, D, E\}を決定できる。
  • 他の選択肢は部分的にしか属性を決められず、また A,C,D{A, C, D} はより大きな集合なので最小性がない。
  • よって正解はウ:A,D{A, D}

参考

  • 関数従属と属性閉包の計算は候補キー発見の基本手順です。
  • 属性閉包を計算するとその属性から推測できるすべての属性集合がわかります。
  • スーパーキーかつ最小のものが候補キーとなります。
← 前の問題へ次の問題へ →

©︎2025 情報処理技術者試験対策アプリ