基本情報技術者試験の過去問と解説
[TOP] [午前分野別] [午後分野別] [キーワード索引] [令和元年秋午前] [令和元年秋午後]

平成30年 春期 基本情報技術者 午後 問03
問03   4問選択

 小学生を対象とした,ある子供会の名簿を管理する関係データベースに関する次の 記述を読んで,設問1〜4に答えよ。

 

 D 子供会は,小学校に入学するときに入会を受け付け,小学校を卒業したら退会する。 D 子供会では,会員名簿を管理するためのデータベースを構築して,会の運営に活用している。

 このたび,児童のイベントへの参加実績を記録するために,活動表とイベント表を追加した。

 データベースの表構成とデータ格納例を図1に示す。下線付きの項目は,主キーを表す。

 

図1 データベースの表構成とデータ格納例

 

設問1  6年生を対象に実施するイベントの案内を配布するために,6年生の保護者の氏名と 住所を抽出する。ここで,同一の保護者は重複して抽出しない。また, 同じ住所に氏名が同じ保護者は,複数人いないものとする。正しい SQL 文を, 解答群の中から選べ。

 

解答群 ア SELECT DISTINCT 保護者表.保護者氏名, 保護者表.住所
   FROM 保護者表
   WHERE 保護者表.保護者番号 NOT IN
     (SELECT 児童表.保護者番号 FROM 児童表 WHERE 児童表.学年 = 6)

イ SELECT DISTINCT 保護者表.保護者氏名, 保護者表.住所
   FROM 保護者表, 児童表
   WHERE 児童表.学年 = 6
   GROUP BY 保護者表.保護者氏名, 保護者表.住所

ウ SELECT DISTINCT 保護者表.保護者氏名, 保護者表.住所
   FROM 保護者表, 児童表
   WHERE 保護者表.保護者番号 = 児童表.保護者番号 AND 児童表.学年 = 6

エ SELECT 保護者表.保護者氏名, 保護者表.住所
   FROM 保護者表, 児童表
   WHERE 保護者表.保護者番号 = 児童表.保護者番号
   GROUP BY 保護者表.保護者氏名, 保護者表.住所 HAVING 児童表.学年 = 6

 

解答 ←クリックすると正解が表示されます

基本情報技術者試験


設問2  イベント番号が 18001 のイベントに参加した児童のうち,1年生である児童の保護者の 保護者番号と氏名を抽出する。ここで,同一の保護者は重複して抽出しない。 次の SQL 文の に入れる正しい答えを,解答群の中から選べ。

 

SELECT DISTINCT 保護者表.保護者番号, 保護者表.保護者氏名
  

 

a に関する解答群 ア FROM 児童表, 保護者表, イベント表
  WHERE 児童表.学年 = 1 AND
    イベント表.イベント番号 = 18ØØ1

イ FROM 児童表, 保護者表, イベント表
  WHERE 児童表.保護者番号 = 保護者表.保護者番号 AND
    児童表.学年 = 1 AND
    イベント表.イベント番号 = 18ØØ1

ウ FROM 児童表, 活動表, 保護者表
  WHERE 児童表.児童番号 = 活動表.児童番号 AND
     児童表.保護者番号 = 保護者表.保護者番号 AND
     活動表.イベント番号 = 18ØØ1
  GROUP BY 児童表.児童氏名 HAVING 児童表.学年 = 1

エ FROM 児童表, 活動表, 保護者表
  WHERE 児童表.児童番号 = 活動表.児童番号 AND
     児童表.保護者番号 = 保護者表.保護者番号 AND
     児童表.学年 = 1 AND
     活動表.イベント番号 = 18ØØ1

 

解答 a ←クリックすると正解が表示されます

基本情報技術者試験


設問3  イベント名と,そのイベントに参加した児童の数を表示する。 次の SQL 文の に入れる正しい答えを, 解答群の中から選べ。ここで,イベント名は全て異なるものとする。

 

SELECT イベント表.イベント名,
  FROM 活動表, イベント表
  WHERE 活動表.イベント番号 = イベント表.イベント番号
  GROUP BY イベント表.イベント名

 

b に関する解答群 ア AVG(活動表.イベント番号)

イ COUNT(*)

ウ MAX(活動表.イベント番号)

エ SUM(活動表.イベント番号)

 

解答 b ←クリックすると正解が表示されます

基本情報技術者試験


設問4  年度の切替えのために,次に示す手順で表を更新する。(1),(2) は入会前の 準備のために3月 31 日に実行し,(3)〜(7) は6年生が退会した4月1日に実行する。 次の SQL 文の に入れる正しい答えを,解答群の中から選べ。

 

〔手順〕

(1) 新入会児童の保護者のうち,未登録の保護者を登録する。

(2) 新入会児童を登録する。このとき,学年の値は 0 とする。

(3) 活動表のレコードを全て削除する。

(4) 児童表の全ての児童に対して,学年の値に 1 を加える。

(5) 児童表から,学年の値が 7 の児童を削除する。

(6) 次の SQL 文を実行して,保護者表から,在籍する児童がいなくなった保護者を削除する。

DELETE FROM 保護者表
  WHERE
(7) イベント表のレコードを全て削除してから,新年度の計画に合わせてイベントを登録する。

 

c に関する解答群 ア 保護者表.保護者番号 = NULL

イ 保護者表.保護者番号 IN
    (SELECT 児童表.保護者番号 FROM 児童表 WHERE 児童表.学年 = 7)

ウ 保護者表.保護者番号 IN
    (SELECT 児童表.保護者番号 FROM 児童表)

エ 保護者表.保護者番号 NOT IN
    (SELECT 児童表.保護者番号 FROM 児童表)

解答 c ←クリックすると正解が表示されます


[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]