基本情報 平成21年度 秋期 問34:テクノロジ系に関する問題
関係データベースの操作に関する記述のうち, 適切なものはどれか。
- a結合は, 二つ以上の表を連結して, 一つの表を生成することをいう。正答
- b射影は, 表の中から条件に合致した行を取り出すことをいう。
- c選択は, 表の中から特定の列を取り出すことをいう。
- d挿入は, 表に対して特定の列を挿入することをいう。
AI解説(初心者・標準・上級)
理解度に合わせて3レベルの解説を無料で読めます。
答えは a「結合は、二つ以上の表を連結して、一つの表を生成する」 です。
関係データベースの基本操作は3つ:
- 選択:行を条件で絞る(例:年齢20以上の人だけ抜き出す)
- 射影:列を絞る(例:名前と電話だけ残す、住所は捨てる)
- 結合:表と表をくっつける(例:「社員表」と「部署表」を「部署番号」でつなげて一つの表にする)
選択肢aは結合の説明として正しい。他の選択肢は用語が入れ替わっています。
👉 覚え方:選択=行を切る/射影=列を切る/結合=表をくっつける。3つセットで丸暗記!
なぜこれが正解か
正解は a。結合(join)は2つ以上の表を共通の属性(通常は外部キーで結ばれた列)に基づいて連結し、1つの大きな表を生成する関係演算。例:社員表 ⨝ 部署表 ON 社員.部署ID = 部署.部署ID。
各選択肢の解説
- b「射影は表の中から条件に合致した行を取り出す」:選択の説明。射影は列を取り出す。
- c「選択は表の中から特定の列を取り出す」:射影の説明。選択は行を取り出す。
- d「挿入は表に対して特定の列を挿入する」:INSERT文は通常行を挿入する。
覚え方・ひっかけ注意
関係代数の基本3演算:選択(σ:シグマ)=行を絞る(WHERE)/射影(π:パイ)=列を絞る(SELECT列)/結合(⨝)=表を連結(JOIN)。選択と射影は意味が逆になりやすいので、「行=横選択=σ」「列=縦選択=π」と図でイメージ。
理論的背景
E.F.コッドの関係モデル(1970)における関係代数の基本演算は8つ:選択σ、射影π、結合⨝、和∪、差−、積(直積)×、商÷、改名ρ。これらは関係的完全性(relationally complete)を持ち、SQLはこの代数を構文化したもの。結合には自然結合(共通属性の同名列で自動結合)、内部結合(INNER JOIN)、外部結合(LEFT/RIGHT/FULL OUTER JOIN)、クロス結合(CROSS JOIN、直積)、セルフ結合(自己参照)がある。クエリオプティマイザは結合順序とアルゴリズム(Nested Loop Join、Hash Join、Sort Merge Join)を統計情報(カーディナリティ、選択度)から動的決定する。
実務での使われ方
パフォーマンスチューニングの中核は結合の最適化:(1) インデックス設計(結合キーへのインデックス)、(2) 統計情報更新(ANALYZE)、(3) ヒント句(オプティマイザに指示)、(4) マテリアライズドビュー(事前結合)、(5) 非正規化(読込性能優先で結合を減らす)。OLTPでは正規化+小規模結合、OLAPでは大規模スタースキーマでHash Join中心。分散DB(Apache Spark、Presto/Trino、BigQuery)ではBroadcast Join(小テーブルを全ノードに配布)とShuffle Join(再分散)の使い分けが性能を左右する。
試験での位置づけ
FE科目Aで関係演算の定義問題が必出。データベーススペシャリスト試験ではSQL文と関係代数式の相互変換、結合アルゴリズムの選択基準、実行計画(EXPLAIN)の読解が頻出。応用情報の午後では正規化(1NF〜BCNF)と関連付けたER設計問題、SQL最適化問題が定番。
選択肢の発展補足
SQL JOIN種別:INNER JOIN(両表に存在)/LEFT OUTER JOIN(左全部+一致行)/RIGHT OUTER JOIN(右全部)/FULL OUTER JOIN(両側全部)/CROSS JOIN(直積)/SELF JOIN(自己結合)。集合演算:UNION(和集合・重複排除)/UNION ALL(和集合・重複含む)/INTERSECT(積集合)/EXCEPT/MINUS(差集合)。正規化との関係:高次正規化は分割される表を増やし結合回数を増やすが、更新異常を防ぐ。OLAP系では意図的に非正規化(次元テーブルの結合済みファクト)してパフォーマンス確保。NoSQLは結合を避ける設計思想(埋込みドキュメント、デノーマライズ)が主流。
出典:IPA(情報処理推進機構)公式 基本情報技術者試験 平成21年度 秋期 問34/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。