平成25年度 春期 ITパスポート試験 公開問題 問67 解説 関係データベース操作
関係データベースの“商品”表から価格が100円以上の商品の行(レコード)だけ を全て抽出する操作を何というか。
- 結合
- 射影
- 選択 ✓ 正答
- 和
解説
この問題は、関係データベースにおける操作の名称を問うものです。ポイントは、抽出対象が「行(横方向)」か「列(縦方向)」かを見分けることです。
問題文にある「価格が100円以上の行を抽出する」という操作は、条件に合致するレコードだけを横方向に切り出す動きであるため、正解は選択となります。
関係代数における操作の分類
関係データベースには、データを操作するための基本演算がいくつか定義されています。ITパスポート試験で特によく出題されるのが、選択と射影の使い分けです。
選択(Selection) テーブルから、特定の条件を満たす行(レコード)だけを抽出する操作です。例えば「在庫が0の製品」や「価格が100円以上の商品」のように、横方向のデータセットを絞り込むイメージです。
射影(Projection) テーブルから、特定の列(属性)だけを抽出する操作です。例えば「商品名と価格の列だけを表示したい」という場合に使います。縦方向に必要な項目だけを切り出すイメージです。
紛らわしい操作名との見分け方
試験では、選択と射影の定義を入れ替えたひっかけ問題が頻出します。以下の見分け方を覚えておきましょう。
・行を絞る(条件指定):選択 ・列を絞る(項目指定):射影
また、選択肢にあった「結合」は2つの異なるテーブルを特定の列をキーにして横に繋げる操作、「和」は2つのテーブルの行を上下に合体させる操作を指します。これらは表そのものを加工する操作ですので、行や列を抽出する今回のような操作とは区別して覚える必要があります。
実務現場における活用と教育的意図
この知識は、データベース言語であるSQLを学ぶ際の基礎となります。
私たちが普段SQLで書くSELECT文は、まさにこの関係代数の考え方を具現化したものです。 「価格が100円以上の商品を抽出する」という操作は、SQLでは WHERE 句を用いて記述します。一方で「商品名だけを表示する」という操作は、SELECT 句で列を指定する(射影にあたる)ことで実現します。
この問題が出題される背景には、ITエンジニアとして、データベースから必要な情報を過不足なく取り出すための「論理的な操作手順」を身につけてほしいという意図があります。システム開発において、どのデータが必要か、どの項目が必要かを瞬時に整理する力は、効率的な検索処理を設計するうえで非常に重要です。