ITパスポート試験 無料問題 8 / 10 ・ 分野3: テクノロジ系
関係データベースに、次の2つの表がある。社員の表の部署コードと部署の表の部署コードが一致する行どうしをつなぎ、つないだ結果から所在地が大阪の行だけを残して、氏名の列だけを取り出した。得られる行の数はどれか。 部署の表(部署コード・部署名・所在地):D1・営業・東京、D2・開発・大阪、D3・総務・大阪 社員の表(社員番号・氏名・部署コード):1・佐藤・D1、2・鈴木・D2、3・高橋・D2、4・田中・D3、5・伊藤・D1、6・渡辺・D4
- 4
- 2
- 3
- 6
正解と解説を見る
正解: C
正解の理由
部署コードが一致する行どうしをつなぐと、佐藤・伊藤は D1(東京)、鈴木・高橋は D2(大阪)、田中は D3(大阪)と組になる。渡辺の D4 は部署の表に無いので、組になる行が無く、つないだ結果には残らない。所在地が大阪の行だけを残すと鈴木・高橋・田中の3行で、氏名の列だけを取り出しても行の数は 3 のままである。IT パスポート試験のシラバスは、関係データベースのデータに対する挿入、更新、選択、射影、結合の操作を活用例に挙げている。
違う選択肢
「2」… 2 は、部署の表で所在地が大阪の行(D2・D3)の数である。つないだ結果は社員1人ごとに1行なので、D2 に所属する2人の分が2行になる。
「4」… 4 は、渡辺の行がつないだ結果に残ると考え、所在地が東京でない行(鈴木・高橋・田中・渡辺)を数えた数である。一致する部署コードの無い渡辺の行は、つないだ結果に現れない。仮に残ったとしても所在地は分からず、「大阪の行だけを残す」条件には当てはまらない。
「6」… 6 は社員の表の全行の数である。所在地が大阪の行だけを残す操作で、東京の佐藤・伊藤と、組になる部署の無い渡辺の行が外れる。
押さえどころ
表をつなぐ操作は、共通の列の値が一致する行どうしを組み合わせる。行を条件で絞る操作と、列を取り出す操作は、行の数と列の数のどちらを減らすかが違う。列を取り出しても行の数は変わらない。