<p><!-- style_prompt -->本記事は<strong>Geminiの出力をプロンプト工学で整理した業務ドラフト(未検証)</strong>です。</p>
<h1 class="wp-block-heading">令和5年度 データベーススペシャリスト試験 午前Ⅱ 問1 関数従属性と候補キー</h1>
<p>関係データベースにおける関数従属性から候補キーを導出する問題であり、キーの定義と属性の閉包を正しく理解することが解法の核です。</p>
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><strong>【問題】</strong></p>
<p>関係 $R(A, B, C, D, E, F)$ において、次の関数従属性が成り立っている。この関係 $R$ の候補キーはどれか。</p>
<p>【関数従属性】
– ${A, B} \rightarrow {C}$
– ${C} \rightarrow {D}$
– ${D} \rightarrow {E}$
– ${D} \rightarrow {F}$</p>
<p>ア ${A, B}$
イ ${A, B, C}$
ウ ${A, B, D}$
エ ${A, B, E, F}$</p>
</blockquote>
<h3 class="wp-block-heading">【解説】</h3>
<p>候補キーとは、関係 $R$ のすべての属性を一意に識別(関数決定)できる最小の属性集合です。これを判定するために、各属性集合の閉包(その集合から関数従属性を辿って導出できるすべての属性の集合)を求めます。</p>
<p>まず、集合 ${A, B}$ の閉包 ${A, B}^+$ を求めます。</p>
<p>$$ {A, B}^+ = {A, B} $$</p>
<ol class="wp-block-list">
<li><p>${A, B} \rightarrow {C}$ より、$C$ が加わります。
$$ {A, B}^+ = {A, B, C} $$</p></li>
<li><p>${C} \rightarrow {D}$ より、$D$ が加わります。
$$ {A, B}^+ = {A, B, C, D} $$</p></li>
<li><p>${D} \rightarrow {E}$ および ${D} \rightarrow {F}$ より、$E$ と $F$ が加わります。
$$ {A, B}^+ = {A, B, C, D, E, F} $$</p></li>
</ol>
<p>すべての属性 ${A, B, C, D, E, F}$ が導出されたため、${A, B}$ は関係 $R$ のすべての属性を一意に決定できます。また、${A}$ 単体や ${B}$ 単体ではすべての属性を決定できないため、${A, B}$ は極小性(最小限の構成であること)を満たしており、候補キーとなります。</p>
<div class="wp-block-merpress-mermaidjs diagram-source-mermaid"><pre class="mermaid">
graph LR
A --> AB["A, B"]
B --> AB
AB --> C
C --> D
D --> E
D --> F
</pre></div>
<h3 class="wp-block-heading">【選択肢の吟味】</h3>
<figure class="wp-block-table"><table>
<thead>
<tr>
<th>選択肢</th>
<th>判定</th>
<th>解説</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>ア</strong></td>
<td><strong>正解</strong></td>
<td>${A, B}$ の閉包は全属性を含み、かつその真部分集合は全属性を決定できないため、極小性を満たす候補キーです。</td>
</tr>
<tr>
<td><strong>イ</strong></td>
<td><strong>不正解</strong></td>
<td>${A, B, C}$ は全属性を決定できますが、部分集合 ${A, B}$ も全属性を決定できるため、極小性を満たさず候補キーにはなりません(超キーに該当)。</td>
</tr>
<tr>
<td><strong>ウ</strong></td>
<td><strong>不正解</strong></td>
<td>${A, B, D}$ も同様に、不要な属性 $D$ が含まれており、極小性を満たさないため候補キーではありません。</td>
</tr>
<tr>
<td><strong>エ</strong></td>
<td><strong>不正解</strong></td>
<td>${A, B, E, F}$ も同様に、部分集合 ${A, B}$ だけで全属性を決定できるため、極小性を満たさず候補キーではありません。</td>
</tr>
</tbody>
</table></figure>
<h3 class="wp-block-heading">【ポイント】</h3>
<ul class="wp-block-list">
<li><p><strong>候補キーの2条件</strong>:全属性を一意に決定できる「一意性」と、それ以上属性を減らせない「極小性」を同時に満たす必要がある。</p></li>
<li><p><strong>閉包の順次計算</strong>:与えられた関数従属性を矢印に沿って順番に適用し、属性を拡張していく。</p></li>
<li><p><strong>超キーとの区別</strong>:一意性のみを満たし極小性を満たさないものは「超キー(スーパーキー)」であり、候補キーとは異なる。</p></li>
</ul>
本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。
令和5年度 データベーススペシャリスト試験 午前Ⅱ 問1 関数従属性と候補キー
関係データベースにおける関数従属性から候補キーを導出する問題であり、キーの定義と属性の閉包を正しく理解することが解法の核です。
【問題】
関係 $R(A, B, C, D, E, F)$ において、次の関数従属性が成り立っている。この関係 $R$ の候補キーはどれか。
【関数従属性】
– ${A, B} \rightarrow {C}$
– ${C} \rightarrow {D}$
– ${D} \rightarrow {E}$
– ${D} \rightarrow {F}$
ア ${A, B}$
イ ${A, B, C}$
ウ ${A, B, D}$
エ ${A, B, E, F}$
【解説】
候補キーとは、関係 $R$ のすべての属性を一意に識別(関数決定)できる最小の属性集合です。これを判定するために、各属性集合の閉包(その集合から関数従属性を辿って導出できるすべての属性の集合)を求めます。
まず、集合 ${A, B}$ の閉包 ${A, B}^+$ を求めます。
$$ {A, B}^+ = {A, B} $$
${A, B} \rightarrow {C}$ より、$C$ が加わります。
$$ {A, B}^+ = {A, B, C} $$
${C} \rightarrow {D}$ より、$D$ が加わります。
$$ {A, B}^+ = {A, B, C, D} $$
${D} \rightarrow {E}$ および ${D} \rightarrow {F}$ より、$E$ と $F$ が加わります。
$$ {A, B}^+ = {A, B, C, D, E, F} $$
すべての属性 ${A, B, C, D, E, F}$ が導出されたため、${A, B}$ は関係 $R$ のすべての属性を一意に決定できます。また、${A}$ 単体や ${B}$ 単体ではすべての属性を決定できないため、${A, B}$ は極小性(最小限の構成であること)を満たしており、候補キーとなります。
graph LR
A --> AB["A, B"]
B --> AB
AB --> C
C --> D
D --> E
D --> F
【選択肢の吟味】
| 選択肢 |
判定 |
解説 |
| ア |
正解 |
${A, B}$ の閉包は全属性を含み、かつその真部分集合は全属性を決定できないため、極小性を満たす候補キーです。 |
| イ |
不正解 |
${A, B, C}$ は全属性を決定できますが、部分集合 ${A, B}$ も全属性を決定できるため、極小性を満たさず候補キーにはなりません(超キーに該当)。 |
| ウ |
不正解 |
${A, B, D}$ も同様に、不要な属性 $D$ が含まれており、極小性を満たさないため候補キーではありません。 |
| エ |
不正解 |
${A, B, E, F}$ も同様に、部分集合 ${A, B}$ だけで全属性を決定できるため、極小性を満たさず候補キーではありません。 |
【ポイント】
候補キーの2条件:全属性を一意に決定できる「一意性」と、それ以上属性を減らせない「極小性」を同時に満たす必要がある。
閉包の順次計算:与えられた関数従属性を矢印に沿って順番に適用し、属性を拡張していく。
超キーとの区別:一意性のみを満たし極小性を満たさないものは「超キー(スーパーキー)」であり、候補キーとは異なる。
コメント