スポンサーリンク

ITパスポート試験 平成29年度春期 [問90] 過去問解説

問題

問90

関係データベースで管理している“商品”表に対して次の三つの操作a~cを行ったとき、得られる値が大きい順に操作を左から並べたものはどれか。ここで、“%”は0文字以上の任意の文字列を表すものとする。

  • a, b, c
  • b, c, a
  • c, a, b
  • c, b, a

[出典:ITパスポート試験 平成29年度春期 問90]

正解

正解は「」です。

解説

 この問題は、提示された「商品」表に対して、a、b、cの各操作を行った場合に選択される商品の数をそれぞれ計算し、その結果を数の大きい順に並べ替えることを求めています。それぞれの操作で選択される商品の数を具体的に計算してみましょう。

操作a: 「大盛が‘有’でかつ商品名が’%うどん%’」 「%うどん%」は商品名に「うどん」という文字が含まれるものを指します。さらに「大盛が‘有’」という条件も加わります。

  1. S001 きつねうどん: 「うどん」が含まれる(〇)、大盛「有」(〇) → 選択
  2. S002 たぬきうどん: 「うどん」が含まれる(〇)、大盛「有」(〇) → 選択
  3. S003 天ぷらうどん: 「うどん」が含まれる(〇)、大盛「無」(✕) → 非選択
  4. S004 うどん定食: 「うどん」が含まれる(〇)、大盛「有」(〇) → 選択
  5. S005 うどんすき: 「うどん」が含まれる(〇)、大盛「無」(✕) → 非選択
  6. S006 カレーうどん: 「うどん」が含まれる(〇)、大盛「有」(〇) → 選択 したがって、操作aで選択される商品の数は 4個 です。

操作b: 「価格が400以上かつ550以下」

  1. S001 300円: 400円以上ではない(✕) → 非選択
  2. S002 250円: 400円以上ではない(✕) → 非選択
  3. S003 500円: 400円以上550円以下(〇) → 選択
  4. S004 550円: 400円以上550円以下(〇) → 選択
  5. S005 600円: 550円以下ではない(✕) → 非選択
  6. S006 400円: 400円以上550円以下(〇) → 選択 したがって、操作bで選択される商品の数は 3個 です。

操作c: 「商品名が「うどん%’」 「うどん%」は商品名が「うどん」で始まるものを指します。

  1. S001 きつねうどん: 「うどん」で始まらない(✕) → 非選択
  2. S002 たぬきうどん: 「うどん」で始まらない(✕) → 非選択
  3. S003 天ぷらうどん: 「うどん」で始まらない(✕) → 非選択
  4. S004 うどん定食: 「うどん」で始まる(〇) → 選択
  5. S005 うどんすき: 「うどん」で始まる(〇) → 選択
  6. S006 カレーうどん: 「うどん」で始まらない(✕) → 非選択

 したがって、操作cで選択される商品の数は 2個 です。 これらの結果を値が大きい順に並べると、a (4個) > b (3個) > c (2個) となります。よって、正しい並びは「a, b, c」となり、選択肢アが正解です。

イ(b, c, a):
 b (3個), c (2個), a (4個) の順は、値の大きい順に並んでいません。各操作の選択数を正しく計算することが重要です。
ウ(c, a, b):
 c (2個), a (4個), b (3個) の順は、値の大きい順に並んでいません。ワイルドカードの解釈や条件式の評価を正確に行う必要があります。
エ(c, b, a):
 c (2個), b (3個), a (4個) の順は、値の大きい順に並んでいません。特に、`%` の位置によって「〜で始まる」「〜で終わる」「〜を含む」の意味が変わる点に注意が必要です。

スポンサーリンク

難易度

 この問題は、データベースの基本的な検索条件(ワイルドカードや範囲指定)を理解しているかを確認するものです。一つ一つの条件を丁寧に評価すれば難しくはありませんが、ワイルドカードの解釈を間違えたり、複数の条件(AND条件)を見落としたりすると計算ミスにつながりやすいです。IT初心者の方にとっては、ワイルドカードのルールをしっかり覚えることが最初のハードルになるかもしれません。

用語補足

関係データベース:
 情報を表(テーブル)の形で管理するデータベースの仕組みです。行と列で構成され、互いに関連する複数の表を組み合わせることで、複雑なデータを効率的に扱えます。例えば、顧客情報と注文情報を別々の表で管理し、顧客IDを使って関連付けることができます。

ワイルドカード (%):
 データベース検索などで、「任意の文字列」を表す記号です。例えば、「商品名が’%うどん%’」と指定すると、「うどん」という文字を含む全ての商品が検索されます。もし「うどん%」と指定すれば、「うどん」で始まる商品だけが検索対象となります。

選択 (関係演算):
 データベースの表から、特定の条件を満たす行(レコード)だけを取り出す操作のことです。例えば、「価格が400円以上」という条件で商品表からデータを選択すると、400円以上の商品だけが表示されます。SQLでは主に`WHERE`句でこの選択を行います。

条件式:
 特定のデータが満たすべき条件を記述したものです。例えば、「価格が400以上」や「大盛が‘有’」などが条件式にあたります。複数の条件を「かつ(AND)」や「または(OR)」で組み合わせることもできます。

対策

 この問題のポイントは、データベースの検索条件(特にワイルドカードの使い方)を正確に理解し、表から条件に合致するデータを一つずつ丁寧に数え上げることです。特に「%」の位置によって「〜で始まる」「〜で終わる」「〜を含む」といった意味が変わることを覚えておきましょう。また、「かつ(AND)」で結ばれた複数の条件がある場合は、その全てを満たすものだけを選ぶ必要があります。焦らず、各操作の条件を書き出し、表の各行と照らし合わせて確認する手順を踏むことが、正解への近道です。


タイトルとURLをコピーしました