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

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

 遊園地の入園者情報を管理する関係データベースに関する次の記述を読んで, 設問1〜4に答えよ。

 

 遊園地 Y では,各アトラクションの入り口に IC カードの読取り機を設置して, 入園者の利用状況を収集するシステムを導入した。入園者は,全てのアトラクションを 追加料金なしで利用できるパスポートか,アトラクション利用の都度, 料金が課金される入園券のいずれかを購入し,対応する IC カードを受け取る。 IC カードは退園時に料金を精算してから返却する。 ここで,入園者は退園まで遊園地を出ることはないものとする。
 遊園地 Y では,システム導入前は入園者の情報を図1に示す表で構成されるデータベースで管理していた。 下線付きの項目は主キーを表す。

 


図1 システム導入前の表の構成とデータの格納例

基本情報技術者試験


設問1  システムの導入に当たり,データベースの表を図2に示すとおり再設計した。 次の記述中の に入れる適切な答えを,解答群の中から選べ。

 

 入園者表に退園時刻の項目を追加することによって, が分かるようになった。また,利用表を追加することによって, が分かるようになった。 各アトラクションには一意のアトラクション番号を割り振って, 利用表から分離したアトラクション表を作成した。

 


図2 システム導入後の表の構成とデータの格納例

 

a,b に関する解答群 ア アトラクションの待ち時間       イ 休園日

ウ 入園者数               エ 入園者のアトラクション利用状況

オ 入園者の滞在時間

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

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

基本情報技術者試験


設問2  アトラクションごとの延べ利用者数を表示する。次の SQL 文の に 入れる正しい答えを,解答群の中から選べ。

 

SELECT 利用表.アトラクション番号,アトラクション表.アトラクション名,
     
  FROM 利用表,アトラクション表
  WHERE 利用表.アトラクション番号 = アトラクション表.アトラクション番号
  GROUP BY 利用表.アトラクション番号,アトラクション表.アトラクション名
解答群 ア AVG(利用表.アトラクション番号)

イ COUNT(*)

ウ MAX(利用表.アトラクション番号)

エ SUM(利用表.アトラクション番号)

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

基本情報技術者試験


設問3   入園券でアトラクションを利用した入園者のうち,退園時の精算において 2,000 円以上を支払った入園者について,精算額が多い入園者から降順に, 入園者番号と精算額を表示する。入園券の購入者は入園者表の券種に“01”が設定 されている。次の SQL 文の に入れる正しい答えを, 解答群の中から選べ。

 

SELECT 入園者表.入園者番号,SUM(アトラクション表.料金) AS 支払金額
  FROM 入園者表,利用表,アトラクション表
  WHERE 入園者表.入園者番号 = 利用表入園者番号 AND
     利用表.アトラクション番号 = アトラクション表.アトラクション番号 AND
     
  ORDER BY 支払金額 DESC

 

解答群 ア 入園者表.券種 ='Ø1' AND
  アトラクション表.料金 >= 2ØØØ
  GROUP BY 利用表.アトラクション番号

イ 入園者表.券種 = 'Ø1'
  GROUP BY 入園者表.入園者番号
  HAVING MAX(アトラクション表.料金) >= 2ØØØ

ウ 入園者表.券種 = 'Ø1'
  GROUP BY 入園者表.入園者番号
  HAVING SUM(アトラクション.表料金) >= 2ØØØ

エ 入園者表.券種 = 'Ø1'
  GROUP BY 利用表.アトラクション番号
  HAVING SUM(アトラクション表.料金) >= 2ØØØ

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

基本情報技術者試験


設問4    パスポートを購入する際に提示することで料金が割引になる会員証を発行することになった。 そこで,図3に示すとおり,会員情報を格納する会員表を作成し, 入園者表に会員番号を格納する項目を追加する。 次の SQL 文で抽出できるようになる会員についての正しい答えを,解答群の中から選べ。 ここで,1回も入園していない会員はいないものとする。 また,会員登録をしていない入園者の場合,入園者表の会員番号には NULL を設定する。

 


図3 会員情報を追加した表の構成とデータの格納例

 

SELECT 会員表.会員番号,会員表.氏名
  FROM 会員表,入園者表
  WHERE 会員表.会員番号 = 入園者表.会員番号
    GROUP BY 会員表.会員番号,会員表.氏名
    HAVING MAX(入園者表.入園日) < '2Ø16Ø1Ø1'

 

解答群 ア 2015 年以前に1回も入園していない会員

イ 2016 年以降に1回以上,入園した会員

ウ 2016 年以降に1回だけ,入園した会員

エ 2016 年以降に1回も入園していない会員

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

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