<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>関係 R(A, B, C) と S(B, C, D) がある。自然結合 $R \bowtie S$ を行った結果の属性数はいくつか。</p>
<p>ア 3
イ 4
ウ 5
エ 6</p>
</blockquote>
<h3 class="wp-block-heading">【解説】</h3>
<p>関係代数における<strong>自然結合(Natural Join)</strong>とは、二つのリレーションに共通する属性(列名)の値が一致するタプルを結合し、かつ重複する属性を一つにまとめる演算です。</p>
<p>本問のリレーション R と S の属性集合は以下の通りです。</p>
<ul class="wp-block-list">
<li><p>リレーション R の属性:${A, B, C}$</p></li>
<li><p>リレーション S の属性:${B, C, D}$</p></li>
</ul>
<p>自然結合 $R \bowtie S$ では、共通の属性である ${B, C}$ を結合キーとして結合します。このとき、結合後のリレーションに含まれる属性は、両者の属性集合の<strong>和集合(Union)</strong>となります。</p>
<p>$$
{A, B, C} \cup {B, C, D} = {A, B, C, D}
$$</p>
<p>重複している $B$ と $C$ は一つにまとめられるため、結果の属性数は 4 となります。</p>
<div class="wp-block-merpress-mermaidjs diagram-source-mermaid"><pre class="mermaid">
graph LR
subgraph R
A
B1[B]
C1[C]
end
subgraph S
B2[B]
C2[C]
D
end
R --自然結合-- S
B1 --- Joint("(B, C"))
B2 --- Joint
C1 --- Joint
C2 --- Joint
A --- Result
Joint --- Result
D --- Result
subgraph Result_Set["結合結果"]
Result["A, B, C, D"]
end
</pre></div>
<h3 class="wp-block-heading">【選択肢の吟味】</h3>
<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;">ア</td>
<td style="text-align:left;">誤り</td>
<td style="text-align:left;">共通属性数(2)や片方の属性数(3)と混同していますが、全属性を網羅していません。</td>
</tr>
<tr>
<td style="text-align:left;"><strong>イ</strong></td>
<td style="text-align:left;"><strong>正解</strong></td>
<td style="text-align:left;">共通属性 B, C が統合され、A, B, C, D の計4属性となります。</td>
</tr>
<tr>
<td style="text-align:left;">ウ</td>
<td style="text-align:left;">誤り</td>
<td style="text-align:left;">一方の属性数に他方の非共通属性を足した数(3+2=5)など、計算ミスと考えられます。</td>
</tr>
<tr>
<td style="text-align:left;">エ</td>
<td style="text-align:left;">誤り</td>
<td style="text-align:left;">単純に全属性を足し合わせた数(3+3=6)であり、共通属性の重複排除が行われていません。</td>
</tr>
</tbody>
</table></figure>
<h3 class="wp-block-heading">【ポイント】</h3>
<ul class="wp-block-list">
<li><p>自然結合の属性集合は、元のリレーションの属性集合の<strong>和集合</strong>である。</p></li>
<li><p>共通属性は結合時に<strong>重複が排除</strong>され、1つにまとめられる。</p></li>
<li><p>選択演算(σ)や射影(π)と異なり、属性数そのものが定義によって決まる。</p></li>
</ul>
style_prompt
本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証) です。
令和5年度 データベーススペシャリスト試験 午前Ⅱ 問1 リレーションの自然結合
リレーションの自然結合における属性数の変化を問う問題です。共通属性が重複してカウントされない性質を理解することが解法の核心です。
関係 R(A, B, C) と S(B, C, D) がある。自然結合 $R \bowtie S$ を行った結果の属性数はいくつか。
ア 3
イ 4
ウ 5
エ 6
【解説】
関係代数における自然結合(Natural Join) とは、二つのリレーションに共通する属性(列名)の値が一致するタプルを結合し、かつ重複する属性を一つにまとめる演算です。
本問のリレーション R と S の属性集合は以下の通りです。
リレーション R の属性:${A, B, C}$
リレーション S の属性:${B, C, D}$
自然結合 $R \bowtie S$ では、共通の属性である ${B, C}$ を結合キーとして結合します。このとき、結合後のリレーションに含まれる属性は、両者の属性集合の和集合(Union) となります。
$$
{A, B, C} \cup {B, C, D} = {A, B, C, D}
$$
重複している $B$ と $C$ は一つにまとめられるため、結果の属性数は 4 となります。
graph LR
subgraph R
A
B1[B]
C1[C]
end
subgraph S
B2[B]
C2[C]
D
end
R --自然結合-- S
B1 --- Joint("(B, C"))
B2 --- Joint
C1 --- Joint
C2 --- Joint
A --- Result
Joint --- Result
D --- Result
subgraph Result_Set["結合結果"]
Result["A, B, C, D"]
end
【選択肢の吟味】
選択肢
判定
解説
ア
誤り
共通属性数(2)や片方の属性数(3)と混同していますが、全属性を網羅していません。
イ
正解
共通属性 B, C が統合され、A, B, C, D の計4属性となります。
ウ
誤り
一方の属性数に他方の非共通属性を足した数(3+2=5)など、計算ミスと考えられます。
エ
誤り
単純に全属性を足し合わせた数(3+3=6)であり、共通属性の重複排除が行われていません。
【ポイント】
自然結合の属性集合は、元のリレーションの属性集合の和集合 である。
共通属性は結合時に重複が排除 され、1つにまとめられる。
選択演算(σ)や射影(π)と異なり、属性数そのものが定義によって決まる。
コメント