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

平成20年 秋期 基本情報技術者 午後 問03
問03   関係データベース

 関係データベースに関する次の記述を読んで,設問1,2に答えよ。

 B社では,社員に関連する関係データベースを構築し,各部署からの問合せに対応している。 B社の関係データベースの構造の一部を図に示す。

社員表(社員コード,氏名,入社年月日,部署コード,役職コード,退職年月日,生年月日,
    住所,電話番)
部署表(部署コード,部署名)
役職表(役職コード,役職名)
研修実施表(年度研修コード,研修名,研修開始年月日,研修終了年月日,研修日数)
受講表(年度研修コード社員コード,受講日数)

 下線はキー項目を表す。

        図 B社の関係データベースの構造(一部)

〔各表の概要〕

(1) 社員表は,社員(退職者を含む)の情報を管理する。在職中の社員の退職年月日 は NULL とする。

(2) 部署表は,B社の部署名を管理する。

(3) 役職表は,B社の役職名を管理する。

(4) 研修実施表は,年度ごとにB社が実施した研修名と研修期間を管理する。

(5) 受講表は,各社員が受講した研修とその日数(受講日数)を管理する。社員は, 本人が必要と思う研修だけに申し込み,受講する。受講予定の社員が受講しなかった場合, その研修の受講日数の値は0となる。

(6) B社で規定する年度は,その年の4月1日から翌年の3月 31 日までである。 2007 年度は,2007 年4月1日から 2008 年3月 31 日までとなる。

設問1  入社2年目の社員が,入社以来1日でも受講した研修にどのようなものがある かを知りたい。

 次の SQL 文中の に入れる正しい答えを,解答群の中から三つ選べ。 ここで,入社2年目の社員とは,入社した年度が 2007 年度で,かつ在職中の社員とする。


SELECT DISTINCT 研修名 FROM 受講表, 研修実施表, 社員表
  WHERE 受講表.社員コード = 社員表.社員コード AND
          AND
          AND
          AND
         退職年月日 IS NULL AND
         入社年月日 BETWEEN '2007-04-01' AND '2008-03-31'

解答群

ア 研修実施表.研修コード = 受講表.研修コード

イ 研修実施表.年度 = '2007'

ウ 研修実施表.年度 = 受講表.年度

エ 研修日数 > 0

オ 受話回数 > 0

カ 受講表.年度 = '2007'

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

基本情報技術者試験


設問2  B社では,研修を受講した社員に対して,本人の受講実績だけが照会できる SQL 文が提供されている。しかし,役職名の中に"部長"という文字列がある 社員("部長",“副部長","部長代理"など)は,自分の受講実績だけでなく, 同じ所属部署にいるすべての社員の受講実績を照会できるようにしたい。 この照会ができる社員を選択する SQL 文の説明として に 入れる正しい答えを,解答群の中から選べ。

 役職表の役職名に"部長"という文字列を含むすべての役職は と して検索する。同じ所属部署の社員を抽出するには,次のとおりにする。

 受講表には という項目があるが,これだけではその社員が同じ所属部署で あるかどうか分からない。同じ所属部署であるかどうかを知るためには という項目が必要になる。したがって, 受講表の項目 を 用いて を結合し, の値を取り出せばよい。

a に関する解答群

ア SELECT 役職コード FROM 役職表 WHERE 役職名 = '部長'

イ SELECT 役職コード FROM 役職表

    WHERE 役職名 = '部長' OR 役職名 = '副部長' OR 役職名 = '部長代理'

ウ SELECT 役職コード FROM 役職表

    WHERE 役職名 IN ('部長', '副部長', '部長代理')

エ SELECT 役職コード FROM 役職表 WHERE 役職名 LIKE '%部長%'

オ SELECT 役職コード FROM 役職表 WHERE 役職名 LIKE '部長%'

b〜d に関する解答群

ア 研修コード       イ 研修実施表

ウ 社員コード       エ 社員表

オ 部署コード       力 部署表

キ 役職コード       ク 役職表

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

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

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

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


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