令和7年度 ITパスポート試験 公開問題 問66 解説 関係データベースの抽出
関係データベースで管理している次の“ログイン記録”表及び“部署”表において, ログイン結果が失敗となったことのある,又は,2022年4月10日09:00:00以前にログイン結果が成功となったことのある従業員が所属する部署名だけを全て挙げたものはどれか。
- ア 営業部,システム部
- イ 営業部,システム部,人事部 ✓ 正答
- ウ 営業部,人事部
- エ システム部,人事部
解説
この問題は、条件を満たすデータをテーブルから探し出し、最終的に求められている部署名を特定する手順で解きます。
解答の手順
今回の問題は、論理演算のOR(または)で結ばれた2つの条件を満たす対象を抽出する問題です。
- ログイン記録表から、「ログイン結果が失敗」した行を探します。
- ログイン記録表から、「2022年4月10日 09:00:00以前に成功」した行を探します。
- 上記1と2に該当する従業員番号をすべてリストアップします。
- リストアップした従業員が所属する部署を、部署表と照らし合わせて特定します。
条件1(失敗したことがある)の対象:
- 従業員10004(003:人事部)
- 従業員10005(003:人事部)
- 従業員10011(001:営業部)
条件2(09:00:00以前に成功したことがある)の対象:
- 従業員10004(003:人事部)※失敗だけでなく成功もしている
- 従業員10002(002:システム部)※08:55:48に成功
- 従業員10001(001:営業部)※09:00:00に成功(以前に含む)
これらをまとめると、該当する部署番号は001(営業部)、002(システム部)、003(人事部)のすべてとなります。したがって、正解は「イ 営業部,システム部,人事部」です。
データベース操作と論理演算の考え方
この問題は、データベース言語であるSQLにおける抽出条件の考え方を問うています。今回の問題文にある「又は(OR)」という条件は、対象となるレコードを広げる役割を持ちます。
実務においては、単に条件を抽出するだけでなく、このように複数のテーブル(ログイン記録表と部署表)を関連付けて目的の情報を得る「結合(JOIN)」の考え方が重要です。ログイン記録表には「部署番号」というキー項目があるため、これを利用して部署表と突き合わせることで、データ同士の結びつきを確認しています。
この知識の活用場面
ITパスポート試験でこの手の問題が出題される背景には、データの「抽出」と「集計」の基礎を理解しているかを確認したいという意図があります。
システム開発やデータ分析の現場では、以下のような場面でこの考え方を日常的に利用します。
- 営業管理システムで、今月の売上目標に達していない担当者(失敗に近い概念)や、過去に特定期間内で一定以上の実績がある担当者(条件付き検索)のリストを抽出する。
- セキュリティ監査の際、特定の時刻以前にログインした履歴があるユーザーと、ログイン失敗が連続しているユーザーを突き合わせ、不正アクセスの予兆を調査する。
このように、複数の条件を論理的に組み合わせて必要な情報だけを抜き出すスキルは、データベースを扱うあらゆる業務の土台となります。