問題
問95
表1と表2に、ある操作を行って表3が得られた。行った操作だけを全て挙げたものはどれか。

- 結合
- 結合, 射影
- 結合, 選択
- 選択, 射影
[出典:ITパスポート試験 平成28年度春期 問95]
正解
正解は「イ」です。
解説
この問題は、2つの表から特定の情報を含む新しい表を作成するデータベース操作に関するものです。 まず、表1と表2を見てみましょう。両方の表に「品名コード」という共通の項目があります。最終的に得たい表3には、表1の「品名」「価格」と表2の「棚番号」が含まれていますが、品名コードやメーカの情報は含まれていません。
- 結合(Join): 最初に、表1と表2を共通の「品名コード」を使って結合します。結合とは、複数の表から共通する項目を持つ行同士を組み合わせて、一つの大きな表を作る操作です。例えば、表1の「品名コード001」は「ラーメン、150円、A社」という情報を持っており、表2の「品名コード001」は「棚番号1」という情報を持っています。これを結合することで、「品名コード001、ラーメン、150円、A社、棚番号1」のようなデータを作成できます。同様に、「品名コード002」のデータも結合します。
- 射影(Projection): 結合してできた表には、表3にはない「品名コード」や「メーカ」といった不要な列が含まれています。そこで、表3に必要な「品名」「価格」「棚番号」の3つの列だけを抽出します。この特定の列だけを取り出す操作を射影と呼びます。
したがって、表1と表2から表3を得るためには、「結合」で2つの表の情報を結びつけ、その後に「射影」で必要な列だけを取り出す操作が必要になります。選択肢「イ」の「結合, 射影」がこれに該当します。
ア(結合):
結合だけでは、表1と表2の全ての列が結合された状態になり、表3のように特定の列だけが抽出された結果にはなりません。
ウ(結合, 選択):
選択は、特定の条件(例えば「価格が100円以上のもの」など)を満たす「行」を抽出する操作です。表3は行の絞り込みではなく、列の絞り込み(品名、価格、棚番号のみ)をしているため、選択は適切ではありません。
エ(選択, 射影):
この問題では、まず2つの表の情報を組み合わせる「結合」が必須です。選択は行を絞り込む操作なので、結合前に選択を行っても表3は得られません。
難易度
この問題は、データベースの基本的な操作である「結合(Join)」「射影(Projection)」「選択(Selection)」について、それぞれの意味と適用順序を理解しているかを問うものです。表のデータを比較し、どのような結果が得られるかを具体的にイメージできれば、初学者の方でも十分に解答可能です。特に、最終的な表3がどのような列で構成されているか、元の表とどう違うかを見極めることがポイントになります。
用語補足
結合 (Join):
結合とは、関係データベースにおいて、複数の表を共通の項目(列)で結びつけ、関連するデータを行方向に統合する操作です。例えば、顧客情報と購入履歴の2つの表を「顧客ID」で結合すると、どの顧客が何を購入したかという一つの情報として見ることができます。
射影 (Projection):
射影とは、関係データベースにおいて、表の中から特定の「列」だけを抽出する操作です。例えば、社員名簿の表から「氏名」と「所属部署」の列だけを取り出して、新しい表を作成するような場合に使われます。
選択 (Selection):
選択とは、関係データベースにおいて、表の中から特定の「条件」を満たす「行」だけを抽出する操作です。例えば、社員名簿の表から「年齢が30歳以上の社員」の行だけを取り出すような場合に使われます。
関係データベース:
関係データベースは、データを「テーブル(表)」の形式で管理するデータベースの一種です。各テーブルは行と列で構成され、互いに関連するテーブル同士は、共通の項目(キー)を通じて結びつけることができます。Excelの表を想像していただくとわかりやすいでしょう。
対策
この問題の対策としては、まずデータベースの基本的な操作である「結合」「射影」「選択」のそれぞれの意味と、どのような結果が得られるかを正確に理解することが重要です。特に、結合が行を組み合わせる操作であり、射影と選択がそれぞれ列と行を絞り込む操作である点を明確にしておきましょう。実際に例題の表を用いて、操作を順に適用しながら結果の表を作成してみることで、理解が深まります。過去問題を繰り返し解き、パターンを覚えることも有効です。

