問題
問96
関係データベースの“成績”表から学生を抽出するとき、選択される学生数が最も多い抽出条件はどれか。ここで、“%”は0文字以上の任意の文字列を表すものとする。また、数学及び国語は、それぞれ60点以上であれば合格とする。

- 国語が合格で、かつ、氏名が“%子”に該当する学生
- 国語が合格で、かつ、氏名が“子%”に該当する学生
- 数学,国語ともに合格の学生
- 数学が合格で、かつ、氏名が“%子%”に該当する学生
[出典:ITパスポート試験 平成28年度春期 問96]
正解
正解は「エ」です。
解説
正解は「エ 数学が合格で、かつ、氏名が“%子%”に該当する学生」です。 この問題は、関係データベースの「成績」表から、最も多くの学生が抽出される条件を選ぶものです。各条件の学生数を計算して比較してみましょう。 まず、合格基準を確認します。「数学及び国語は、それぞれ60点以上であれば合格」とあります。
また、「%」は0文字以上の任意の文字列を表すワイルドカードです。 各選択肢で抽出される学生数は以下の通りです。
- ア: 国語が合格で、かつ、氏名が“%子”に該当する学生
- 国語が60点以上の学生: 佐藤花子、鈴木二郎、金子一郎、子安三郎 (4人)
- 氏名が「子」で終わる学生: 佐藤花子 (1人)
- 両方の条件を満たす学生: 佐藤花子 → 1人
- イ: 国語が合格で、かつ、氏名が“子%”に該当する学生
- 国語が60点以上の学生: 佐藤花子、鈴木二郎、金子一郎、子安三郎 (4人)
- 氏名が「子」で始まる学生: 子安三郎 (1人)
- 両方の条件を満たす学生: 子安三郎 → 1人
- ウ: 数学,国語ともに合格の学生
- 数学が60点以上の学生: 金子一郎、高橋春子、子安三郎 (3人)
- 国語が60点以上の学生: 佐藤花子、鈴木二郎、金子一郎、子安三郎 (4人)
- 両方の条件を満たす学生: 金子一郎、子安三郎 → 2人
- エ: 数学が合格で、かつ、氏名が“%子%”に該当する学生
- 数学が60点以上の学生: 金子一郎 (90点)、高橋春子 (70点)、子安三郎 (95点) (3人)
- 氏名に「子」が含まれる学生: 佐藤花子、金子一郎、高橋春子、子安三郎 (4人)
- 両方の条件を満たす学生: 金子一郎、高橋春子、子安三郎 → 3人
この結果から、3人の学生が抽出される「エ」が最も多い条件となります。このように、複数の条件がある場合は、それぞれの条件を満たす対象を正確に把握し、共通するものを数えることが重要です。
ア(国語合格、かつ氏名が「%子」に該当):
この条件では、国語が合格で、かつ氏名が「子」で終わる学生(佐藤花子)のみが抽出され、1人となります。
イ(国語合格、かつ氏名が「子%」に該当):
この条件では、国語が合格で、かつ氏名が「子」で始まる学生(子安三郎)のみが抽出され、1人となります。
ウ(数学,国語ともに合格の学生):
この条件では、数学と国語の両方が60点以上の学生(金子一郎、子安三郎)が抽出され、2人となります。
難易度
この問題は、関係データベースにおける抽出条件とワイルドカード(%)の理解度を測るものです。表から条件に合うデータを正確に読み取り、論理演算子(かつ)を使って複数の条件を組み合わせた結果を導き出す必要があるため、少し時間がかかるかもしれません。落ち着いて一つずつ条件を当てはめていけば、確実に正解にたどり着けるレベルです。
用語補足
関係データベース:
データを複数の表(テーブル)に分けて管理し、表同士を関連付けて扱うデータベースの形式です。例えば、顧客情報と注文情報を別々の表で管理し、顧客IDで関連付けることで、効率的にデータを管理できます。
抽出条件:
データベースから特定のデータを取り出す際に指定する条件のことです。例えば、「年齢が30歳以上」や「地域が東京」といった条件を使って、必要な情報だけを絞り込むことができます。
ワイルドカード(%):
データベースの検索などで、任意の文字や文字列を表す特殊な記号です。例えば、「%子%」と指定すると、「子」という文字が氏名のどこかに含まれているデータをすべて検索できます。「子%」なら「子」で始まる、「%子」なら「子」で終わるデータを意味します。
論理演算子(AND):
複数の条件を組み合わせる際に使う演算子の一つです。AND(かつ)は、すべての条件が真(正しい)の場合に全体が真となります。例えば、「A AND B」はAもBも両方正しい場合にのみ結果が正しいと判断されます。
対策
このタイプの問題を解くには、まず問題文で示されている条件(合格基準やワイルドカードの意味)を正確に理解することが重要です。次に、与えられた表のデータを一つずつ確認し、各選択肢の条件(氏名の部分一致や点数の範囲)を満たす学生を正確に洗い出します。特に「かつ」のような論理演算子で結ばれた条件は、両方を満たすものだけを数えるように注意しましょう。焦らず、段階的に計算を進める練習が効果的です。

