<p>style_prompt
本記事は<strong>Geminiの出力をプロンプト工学で整理した業務ドラフト(未検証)</strong>です。</p>
<h1 class="wp-block-heading">令和元年度 データベーススペシャリスト試験 午前Ⅱ 問6 候補キーの特定</h1>
<p>関数従属性の集合から、関係の全属性を一意に決定できる最小の属性集合(候補キー)を導出するプロセスを解説します。</p>
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>【問題】
関係 $R(A, B, C, D, E, F)$ において,関数従属性集合 $F = { {A, B} \to {C}, {B} \to {D}, {D} \to {E}, {E} \to {F} }$ があるとき,$R$ の候補キーはどれか。</p>
<p>ア {A, B}
イ {A, B, D}
ウ {A, B, E}
エ {A, B, F}</p>
</blockquote>
<p>【解説】
候補キーとは、関係内のすべての属性を関数的に決定できる最小の属性集合です。解法のプロセスとして、各属性集合の<strong>属性閉包(その属性から導き出せる属性の集合)</strong>を求めます。</p>
<ol class="wp-block-list">
<li><p><strong>関数従属性の整理</strong>
与えられた従属性を分解すると以下のようになります。</p>
<ul>
<li><p>$(A, B) \to C$</p></li>
<li><p>$B \to D$</p></li>
<li><p>$D \to E$</p></li>
<li><p>$E \to F$</p></li>
</ul></li>
<li><p><strong>属性集合 {A, B} の閉包を求める</strong></p>
<ul>
<li><p>初期状態:${A, B}$</p></li>
<li><p>$B \to D$ より:${A, B, D}$</p></li>
<li><p>$D \to E$ より:${A, B, D, E}$</p></li>
<li><p>$E \to F$ より:${A, B, D, E, F}$</p></li>
<li><p>$(A, B) \to C$ より:${A, B, C, D, E, F}$</p></li>
</ul>
<p>結果として、${A, B}^+ = {A, B, C, D, E, F}$ となり、すべての属性を決定できます。</p></li>
<li><p><strong>極小性の確認</strong>
${A}$ 単独、または ${B}$ 単独ではすべての属性を決定できません。したがって、${A, B}$ はすべての属性を決定できる「最小の集合」であり、候補キーの条件を満たします。</p></li>
</ol>
<p><strong>Mermaidによる依存関係図:</strong></p>
<div class="wp-block-merpress-mermaidjs diagram-source-mermaid"><pre class="mermaid">
graph LR
A --> ABCDEF[...]
B --> D
D --> E
E --> F
A & B --> C
subgraph Key
A
B
end
</pre></div>
<p>【選択肢の吟味】</p>
<figure class="wp-block-table"><table>
<thead>
<tr>
<th style="text-align:left;">選択肢</th>
<th style="text-align:left;">判定</th>
<th style="text-align:left;">解説</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left;"><strong>ア</strong></td>
<td style="text-align:left;"><strong>正解</strong></td>
<td style="text-align:left;">{A, B}のみですべての属性を導出でき、かつこれ以上減らせない最小の集合です。</td>
</tr>
<tr>
<td style="text-align:left;">イ</td>
<td style="text-align:left;">誤り</td>
<td style="text-align:left;">{A, B, D}から全属性を導出できますが、部分集合である{A, B}で既に特定可能なため、最小性を欠きます。</td>
</tr>
<tr>
<td style="text-align:left;">ウ</td>
<td style="text-align:left;">誤り</td>
<td style="text-align:left;">{A, B, E}も同様に、より小さい{A, B}で全属性を特定できるため、候補キーではありません。</td>
</tr>
<tr>
<td style="text-align:left;">エ</td>
<td style="text-align:left;">誤り</td>
<td style="text-align:left;">{A, B, F}も同様に最小性を満たさず、候補キーの定義に反します。</td>
</tr>
</tbody>
</table></figure>
<p>【ポイント】</p>
<ul class="wp-block-list">
<li><p><strong>属性閉包の計算</strong>:ある属性集合から芋づる式に導き出せる属性をすべてリストアップする。</p></li>
<li><p><strong>候補キーの定義</strong>:一意性と「最小性(これ以上属性を減らすと一意性が失われること)」の両立。</p></li>
<li><p><strong>推移的関数従属</strong>:$B \to D \to E \to F$ のように、連鎖的に決まる関係に注目する。</p></li>
</ul>
style_prompt
本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。
令和元年度 データベーススペシャリスト試験 午前Ⅱ 問6 候補キーの特定
関数従属性の集合から、関係の全属性を一意に決定できる最小の属性集合(候補キー)を導出するプロセスを解説します。
【問題】
関係 $R(A, B, C, D, E, F)$ において,関数従属性集合 $F = { {A, B} \to {C}, {B} \to {D}, {D} \to {E}, {E} \to {F} }$ があるとき,$R$ の候補キーはどれか。
ア {A, B}
イ {A, B, D}
ウ {A, B, E}
エ {A, B, F}
【解説】
候補キーとは、関係内のすべての属性を関数的に決定できる最小の属性集合です。解法のプロセスとして、各属性集合の属性閉包(その属性から導き出せる属性の集合)を求めます。
関数従属性の整理
与えられた従属性を分解すると以下のようになります。
$(A, B) \to C$
$B \to D$
$D \to E$
$E \to F$
属性集合 {A, B} の閉包を求める
初期状態:${A, B}$
$B \to D$ より:${A, B, D}$
$D \to E$ より:${A, B, D, E}$
$E \to F$ より:${A, B, D, E, F}$
$(A, B) \to C$ より:${A, B, C, D, E, F}$
結果として、${A, B}^+ = {A, B, C, D, E, F}$ となり、すべての属性を決定できます。
極小性の確認
${A}$ 単独、または ${B}$ 単独ではすべての属性を決定できません。したがって、${A, B}$ はすべての属性を決定できる「最小の集合」であり、候補キーの条件を満たします。
Mermaidによる依存関係図:
graph LR
A --> ABCDEF[...]
B --> D
D --> E
E --> F
A & B --> C
subgraph Key
A
B
end
【選択肢の吟味】
| 選択肢 |
判定 |
解説 |
| ア |
正解 |
{A, B}のみですべての属性を導出でき、かつこれ以上減らせない最小の集合です。 |
| イ |
誤り |
{A, B, D}から全属性を導出できますが、部分集合である{A, B}で既に特定可能なため、最小性を欠きます。 |
| ウ |
誤り |
{A, B, E}も同様に、より小さい{A, B}で全属性を特定できるため、候補キーではありません。 |
| エ |
誤り |
{A, B, F}も同様に最小性を満たさず、候補キーの定義に反します。 |
【ポイント】
属性閉包の計算:ある属性集合から芋づる式に導き出せる属性をすべてリストアップする。
候補キーの定義:一意性と「最小性(これ以上属性を減らすと一意性が失われること)」の両立。
推移的関数従属:$B \to D \to E \to F$ のように、連鎖的に決まる関係に注目する。
コメント