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

令和元年 秋期 基本情報技術者 午後 問03
問03   5問選択

 書籍及び貸出情報を管理する関係データベースの設計及び運用に関する次の記述を読んで,設問1〜3に答えよ。

 

 D社の部署である資料室は,業務に関連する書籍を所蔵しており,従業員への貸出しを 2015 年4月から実施している。

 所蔵する書籍を管理するデータベースは,書籍の情報を管理する書籍情報表と貸出状況を管理する貸出表とで 構成されている。データベース構成を,図1に示す。下線付きの項目は主キーを表し, 下破線付きの項目は外部キーを表す。各書籍は1冊しか所蔵していない。

図 1 データベース構成

 

〔貸出表に関する説明〕

(1) 従業員に書籍を貸し出す際は,一意の貸出番号,貸し出す書籍の ISBN コード, 従業員番号,貸出日及び返却予定日を設定し,返却日には NULL を設定したレコードを追加する。

(2) 書籍が返却されたら,対象のレコードの返却日に返却された日付を設定する。

 

設問1  次の SQL 文は,ISBN コードが ISBN978-4-9Ø5318-63-7 の書籍の貸出し状態を 表示する SQL 文である。ISBN コードで貸出表を検索し,最も新しい貸出日のレコードの返却日に NULL が設定されている場合は,“貸出中”が表示される。また,最も新しい貸出日のレコードの 返却日に日付が設定されている場合,及び貸出実績のない書籍の場合は,“貸出可”が表示される。    に入れる正しい答えを, 解答群の中から選べ。ここで,検索に使用する ISBN コードの書籍は必ず所蔵されているものとする。 また,返却された書籍はその日のうちに再び貸し出されることはない。

 


SELECT 貸出表.ISBNコード,
       CASE WHEN      a      
       END AS 書籍状態
FROM 貸出表
WHERE 貸出表.ISBNコード = 'ISBN978-4-9Ø5318-63-7'
    AND 貸出表.貸出日 = (SELECT b FROM 貸出表
        WHERE 貸出表.ISBNコード = 'ISBN978-4-9Ø5318-63-7')
UNION ALL
SELECT DISTINCT 書籍情報表.ISBNコード, '貸出可' AS 書籍状態
FROM 書籍情報表
WHERE 書籍情報表.ISBNコード = 'ISBN978-4-9Ø5318-63-7'
    AND NOT EXISTS (SELECT 貸出表.ISBNコード FROM 貸出表
        WHERE 貸出表.ISBNコード = 'ISBN978-4-9Ø5318-63-7' )

 

a に関する解答群 ア 貸出表.返却日 IS NOT NULL THEN '貸出中' ELSE '貸出可'

イ 貸出表.返却日 IS NOT NULL THEN '貸出中'
   WHEN 貸出表.返却日 IS NULL THEN '貸出可'

ウ 貸出表.返却日 IS NULL THEN '貸出可' ELSE '貸出中'

エ 貸出表.返却日 IS NULL THEN '貸出中'
   WHEN 貸出表.返却日 IS NOT NULL THEN '貸出可'

 

b に関する解答群 ア DISTINCT 貸出表.貸出日     イ MAX(貸出表.貸出日)

ウ MIN(貸出表.貸出日)       エ 貸出表.貸出日

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

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

 

基本情報技術者試験


設問2  2018 年4月1日から 2019 年3月 31 日までの間に4回以上貸し出した書籍の一覧を 取得することにした。次の SQL 文の    に入れる正しい答えを, 解答群の中から選べ。

 


SELECT 書籍情報表.ISBNコード,書籍情報表.書籍名,COUNT(*) AS 貸出回数
  FROM 書籍情報表,貸出表
  WHERE 書籍情報表.ISBNコード = 貸出表.ISBNコード
       c      

 

c に関する解答群 ア AND (貸出表.貸出日) >= '2Ø18Ø4-Ø1' OR 貸出表.貸出日 <= '2Ø19-Ø3-31')
  GROUP BY 書籍情報表.ISBNコード,書籍情報表.書籍名
  HAVING COUNT(*) >= 4

イ AND 貸出表.貸出日 BETWEEN '2Ø18-Ø4-Ø1' AND '2Ø19-Ø331'
  GROUP BY 書籍情報表.ISBNコード,書籍情報表.書籍名
  HAVING COUNT(*) >= 4

ウ AND 貸出表.貸出日 >= '2Ø18-Ø4Ø1' AND 貸出表.貸出日 <= '2Ø19-Ø3-31'
  AND COUNT(*) >= 4

エ GROUP BY 書籍情報表.ISBNコード,書籍情報表.書籍名,貸出表.貸出日
  HAVING 貸出表.貸出日 >= '2Ø18-Ø4-Ø1' AND 貸出表.貸出日 <= '2Ø19Ø3-31'
    AND COUNT(*) >= 4

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

 

基本情報技術者試験


設問3  従業員と資料室担当者の利便性を向上させる目的で, 所蔵する書籍を管理するデータベースを再構築することにした。

 データベースの再構築に当たり,従業員と資料室担当者から要望が出された。 次の記述中の    に入れる適切な答えを,解答群の中から選べ。

 

〔従業員と資料室担当者からの要望〕 要望1 ISBN コードが同じ書籍を複数冊所蔵できるようにしたい。

要望2 書籍の購入日を管理できるようにしたい。

要望3 ISBN コードごとに所蔵する書籍数及び貸出し中の書籍数(以下,貸出中件数という)が分かるようにしたい。

要望4 ISBN コードが同じ書籍は同じラックに保管して,書籍が収納されているラックが分かるようにしたい。

 

 従業員と資料室担当者からの要望を反映したデータベース構成案を,図2に示す。 下線付きの項目は主キーを表し,下破線付きの項目は外部キーを表す。

図2 要望を反映したデータベース構成案

 

〔要望に対するデータベース修正内容〕 修正1 要望1に対応するために書籍表を追加して,資料室で所蔵している各書籍に一意の 書籍番号を割り振って,それを主キーとした。また,貸出表の ISBN コードを書籍番号に変更した。

修正2 要望2に対応するために書籍表に購入日を設けた。

修正3 要望3に対応するために書籍管理ビューを追加した。

修正4 要望4に対応するためにラック表を追加して,書籍情報表に外部キーとしてラック番号を追加した。

 要望を反映したデータベース構成案では,既に所蔵している書籍と ISBN コードが同じ書籍を 追加購入した場合に,レコードを追加する必要のある表は d である。

 また,需要がなくなった書籍を廃棄する場合は,ISBN コードが同じ書籍を全て廃棄する。 データベースに対して行う操作は,次の@〜Cを,e の順序で行う必要がある。

 

@ 書籍情報表の主キーが対象 ISBN コードのレコードを削除する。

A 書籍表から対象 ISBN コードに対応する書籍番号を抽出する。

B 書籍表の対象 ISBN コードに対応するレコードを削除する。

C 貸出表の対象書籍番号に対応するレコードを削除する。

 

d に関する解答群 ア 書籍表             イ 書籍表及びラック表

ウ 書籍情報表及び書籍表   エ 書籍情報表,書籍表及びラック表

 

e に関する解答群 ア A → @ → B → C      イ A → @ → C → B      ウ A → B → @ → C

エ A → B → C → @      オ A → C → @ → B      カ A → C → B → @

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

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


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