ITパスポート 2013年 春期 問67
問題文
関係データベースの“商品”表から価格が100円以上の商品の行(レコード)だけを全て抽出する操作を何というか。

選択肢
ア:結合
イ:射影
ウ:選択(正解)
エ:和
🔒 解説は解答すると表示されます
関係データベースの“商品”表から価格が100円以上の商品の行(レコード)だけを全て抽出する操作を何というか。【ITパスポート 解説】
正解の理由
価格が100円以上という「行ごとの条件」に基づいて、表(テーブル)から該当する行だけを取り出す操作は、行の選別(フィルタリング)です。関係データベースでこの操作は「選択」と呼ばれます。したがって該当する選択肢は ウ です。
ポイント:
- 「選択」は行(レコード)を条件で取り出す操作です。
- 与えられた表から「価格が100以上」の行だけを残す、まさにこれが選択です。
解法ステップ
- 問題文で何を基準に取り出すかを確認します。
- 条件は「価格が100円以上」。
- どの単位で操作するかを確認します。
- 行(各商品のレコード)ごとに判断するので「行を選ぶ」操作です。
- 関係データベースの基本操作の名称と照合します。
- 行を条件で取り出す:選択
- 列だけを取り出す:射影(せんえい)
- 複数表を結びつける:結合
- 表同士を合わせる:和(和集合)
- よって「選択」が該当します。
実際の出力(元の表から価格が100以上の行だけを抜き出した結果):
- S001|はさみ|200
- S003|ノート|120
- S005|定規|150
SQL(Structured Query Language:構造化問い合わせ言語)で書くと、次のようになります:
SELECT * FROM 商品 WHERE 価格 >= 100;
関係代数(relational algebra:関係データを扱う理論)では、選択を (シグマ)を使って次のように表します:
選択肢別の誤答解説
-
ア: 結合
結合(join)は、複数の表をキー(例えば商品番号)で結びつけて一つの表にする操作です。今回は一つの表から条件に合う行を取り出すだけなので、結合は関係ありません。 -
イ: 射影
射影(projection)は、列(カラム)を選んで取り出す操作です。例えば「商品名だけを一覧にする」場合が射影です。本問では「価格で行を絞る」ので射影ではありません。 -
ウ: 選択
行ごとの条件でレコードを取り出す操作。ここでは「価格が100円以上」の行だけを抽出するので該当します。 -
エ: 和
和(集合の和、union)は、別々の表の行を合わせる操作です(たとえば別の日の売上表を合算するなど)。条件で行を絞る問題とは異なります。
よくある誤解
-
「列を減らす操作(射影)と混同する」
- 初学者は「取り出す」という語だけで射影と混同しがちです。判断基準は「何を取り出すか」:列を取り出すなら射影、行を条件で取り出すなら選択です。
-
「SQLのSELECT = 選択だと思い込む」
- SQLの命令は
SELECTですが、これは列を指定する機能も行を絞る機能もあるため混乱します。関係代数での「選択」は行の抽出(SQLの WHERE に相当)です。SQLのSELECT * FROM ... WHERE ...の中で行を絞るのが選択です。
- SQLの命令は
-
「価格が100以上か100より大きいかの境界の誤り」
- 問題文の条件を正確に読む必要があります。今回の「100円以上」は
>= 100。> 100(100より大きい)と間違えないようにしましょう。
- 問題文の条件を正確に読む必要があります。今回の「100円以上」は
補足コラム
-
用語のまとめ
- レコード(row):表の1行分のデータ。例:商品一つ分の情報。
- カラム(column/列):表の1列分の属性。例:価格、商品名。
- 選択(selection):行を条件で取り出す操作。関係代数では 。SQLでは WHERE に相当。
- 射影(projection):列を選んで取り出す操作。関係代数では (パイ)。SQLでは SELECT 列名 に相当。
- 結合(join):複数の表を関連する列で結びつける操作。
- 和(union):別の表の行を合わせる操作(重複の扱いは理論やSQLの設定で異なる)。
-
日常例え
- スーパーで「100円以上の商品だけ」を買い物カゴに入れてもらうイメージです。カゴに入るのは条件(価格)を満たす商品(行)だけです。これは「選択」です。
FAQ
Q1. 「選択」と「射影」は同時に行えますか?
A1. はい。実際の検索ではよく両方を組み合わせます。例:価格が100円以上の商品の名前だけを取り出す場合、行を絞る(選択)→列を選ぶ(射影)という流れになります。SQLでは
A1. はい。実際の検索ではよく両方を組み合わせます。例:価格が100円以上の商品の名前だけを取り出す場合、行を絞る(選択)→列を選ぶ(射影)という流れになります。SQLでは
SELECT 商品名 FROM 商品 WHERE 価格 >= 100; のように1行で書けます。Q2. 関係代数の記号でどう書くのですか?
A2. 選択は (シグマ)で書きます。今回なら です。射影は 、結合は 、和は などの記号を使います。
A2. 選択は (シグマ)で書きます。今回なら です。射影は 、結合は 、和は などの記号を使います。
Q3. SQLの
A3. 混同しない方が良いです。SQL の
SELECT と関係代数の「選択」は混同していいですか?A3. 混同しない方が良いです。SQL の
SELECT は「どの列を出すか」を指定する命令です。行を絞るのは WHERE で、関係代数の「選択」はこの WHERE に対応します。関連キーワード: 関係代数、選択(selection)、射影(projection)、SQL WHERE、テーブル操作、フィルタリング、行選択、コンピュータサイエンス入門

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

