基本情報技術者 2018年 秋期 午前(科目A) 問28
問題文
関係XとYを自然結合した後、関係Zを得る関係代数演算はどれか。

選択肢
ア:射影と和
イ:選択
ウ:選択と射影(正解)
エ:選択と和
##: 関係XとYを自然結合した後、関係Zを得る関係代数演算はどれか。【午前2 解説】
要点まとめ
- 結論:自然結合の結果に対して学部名が「情報学部」である行を選択し、学部名・学生番号・氏名の3属性のみを射影します。
- 根拠:X⋈Y によって各学生に学部名が付与されるが、Zは「情報学部」の2名だけを抽出し学部コードを含めていないため、選択と射影が必要です。
- 差がつくポイント:射影で不要な列を消す際に選択条件で使う属性を残すこと、選択と射影の順序と属性指定を正確に理解することが重要です。
正解の理由
正解は ウ(選択と射影)です。
理由は次の通りです。まず X と Y の自然結合 X ⋈ Y によりすべての学生に対応する学部名が付加されます。Z の内容を見ると「情報学部」に属する学生番号 2 と 4 の行のみが残り、学部コードは出力されていません。したがって
理由は次の通りです。まず X と Y の自然結合 X ⋈ Y によりすべての学生に対応する学部名が付加されます。Z の内容を見ると「情報学部」に属する学生番号 2 と 4 の行のみが残り、学部コードは出力されていません。したがって
- 学部名 = '情報学部' で行を絞る選択(σ)
- 出力列を学部名・学生番号・氏名の順に限定する射影(π)
の組合せで表現できます。関係代数式の一例は となります。
よくある誤解
- 自然結合だけでZが得られると思い込み、学部名での絞り込み(選択)や不要列の削除(射影)を忘れる。
- 「射影だけでよい」と考え、条件による削除(選択)を行わないミス。
- 選択と射影の順序や、選択に必要な属性を射影で先に消してしまう誤り(選択できなくなる)。
解法ステップ
- X ⋈ Y を想像または紙に書き、各学生に対応する学部名が付くことを確認する。
- Z と比較して、Z に含まれる行が「情報学部」に限定されている点を確認する(選択が必要)。
- Z の列構成が学部名・学生番号・氏名のみである点から、学部コードを取り除く射影が必要と判断する。
- 関係代数で表す: 。
選択肢別の誤答解説
- ア: 射影と和
射影で列を限定するだけでは絞り込みができず、和(集合和)は別の関係との結合で使うので不適。Z は和で得られる形ではない。 - イ: 選択
選択(σ)で「情報学部」に絞れるが、学部コード列を除去する操作(射影)が行われていないため一致しない。 - ウ: ウ(選択と射影)
正解。選択で情報学部のみを抽出し、射影で学部コードを除いて所望の列を出力する流れが一致する。 - エ: 選択と
表記が不完全だが、選択のみやその他1つの操作ではZの構成要件(列と行の両方)を満たせない。
補足コラム
- 自然結合(自然結合記号 )は共通属性名(ここでは学部コード)で等しい行を結合して新たなスキーマを作ります。
- 選択(σ)は行のフィルタ、射影(π)は列の除去・並べ替え(出題上の表示順)に相当します。最適化上は選択を先に行って結合データ量を減らすことが多いですが、表現としては今回のように結合の後に選択・射影を明示します。
- SQL 対応例(イメージ):
SELECT Y.学部名, X.学生番号, X.氏名 FROM X JOIN Y USING (学部コード) WHERE Y.学部名 = '情報学部';
FAQ
Q1: 選択と射影の順序は逆でもよいですか?
A1: 理論的表現では射影で選択に必要な属性(学部名)を消してしまうと選択できなくなるため、選択に必要な属性を確保した上で射影を行う必要があります。最終結果は同じですが、実行可能性は順序に依存します。
A1: 理論的表現では射影で選択に必要な属性(学部名)を消してしまうと選択できなくなるため、選択に必要な属性を確保した上で射影を行う必要があります。最終結果は同じですが、実行可能性は順序に依存します。
Q2: 自然結合の代わりに直積+選択で表せますか?
A2: はい。自然結合は直積(×)の後に共通属性の等値条件で選択を行い重複列を整理する操作と等価です。ただし表現が冗長になります。
A2: はい。自然結合は直積(×)の後に共通属性の等値条件で選択を行い重複列を整理する操作と等価です。ただし表現が冗長になります。
Q3: なぜ和(UNION)は使えないのですか?
A3: 和は同じスキーマを持つ二つの関係を結合する操作で、今回の問題は条件抽出と列削除が必要なため不適切です。
A3: 和は同じスキーマを持つ二つの関係を結合する操作で、今回の問題は条件抽出と列削除が必要なため不適切です。
関連キーワード: 関係代数、自然結合、選択(σ)、射影(π)、学部コード、属性除去、SQL対応、結合最適化

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

