平成23年 秋期 基本情報技術者 午後 問02
問02 5問選択従業員データベースの設計と運用に関する次の記述を読んで,設問1〜4に答えよ。 C社は,2011 年4月1日の組織編成の変更に伴い,従業員データベースの再構築を行った。 組織編成の変更前は図1に示すとおり,部だけで編成されていたが, 事業の拡大及び従業員数の増加に合わせて,図2に示すとおり,部と課からなる組織編成となった。
図1 変更前の組織編成
設問1 組織編成の変更を反映するために,図3に示す表中の部に関する情報の変更について, A 案と B 案を考えて比較検討した。図4に示す A 案では,部名と課名の組合せに対して一意の部署コードを割り当てた。 図5に示す B 案では,部名と課名のそれぞれにコードを割り当て,従業員表の部コードを課コードに変更した。 次の記述中の に入れる適切な答えを,解答群の中から選べ。
図3 変更前の従業員データベースの表構成
最初は,部名と課名の組合せに対して一意の部署コードを割り当てた,A 案にようて管理しようとした。 しかし,これでは, を変更する必要が生じた場合に複数行を修正する必要があるので, 正規化における の観点から好ましくない。 また,例えば を表示する際に LIKE 述語を使用したデータ依存の検索が必要になるなど, 柔軟性が低いことが分かった。このため,B 案の構成でデータベースを再構築した。 a に関する解答群
ウ 従業員の氏名の一覧 エ 部署名の一覧
設問2 B 案の構成でデータベースを再構築した後に,課ごとの平均年齢を算出し,表示する。 次の SQL 文の に入れる正しい答えを,解答群の中から選べ。
FROM 課表,従業員表 WHERE
GROUP BY 課表.課コード,課表.課名
イ 課表.課コード = 従業員表.課コード ウ 従業員表.年齢 = ANY (SELECT COUNT(従業員表.年齢) FROM 従業員表)
エ 従業員表.年齢 = ANY 設問3 従業員表は,受発注情報を管理する表などから,従業員番号を外部キーとして参照される。 このため,従来は特に利用を制限せずに社内公開していたが,個人情報保護の観点から, 必要最小限の情報だけを公開するビューを作成することにした。ビューで公開する項目は, 従業員番号,氏名,課コード,内線とする。 次の SQL 文の に入れる正しい答えを, 解答群の中から選べ。 CREATE VIEW 従業員公開表 AS 解答群
ADD (従業員番号,氏名,課コード,内線)
イ ALTER TABLE 従業員表 ウ SELECT * FROM 従業員表 WHERE 従業員番号 IS NOT NULL エ SELECT 従業員番号,氏名,課コード,内線 FROM 従業員表 設問4 設問3で作成したビューと図6に示す受注表を使用して,営業部海外課に在籍する従業員が, 2011 年7月1日から 2011 年9月 30 日の期間中に受注した案件の受注総額を算出する。 営業部海外課の課コードは“S101”で,2011 年7月1日以降の従業員の異動はない。 次の SQL 文の に入れる正しい答えを,解答群の中から選べ。
図6 受注表の構成
SELECT SUM(受注表.受注額) 解答群
受注表.受注日 BETWEEN '20110701' AND '20110930' イ 受注表.受注日 BETWEEN '20110701' AND '20110930'
ウ 受注表.受注日 IN (SELECT COUNT(*) FROM 受注表
エ 受注表.受注日 IN (SELECT SUM(受注表.受注額) FROM 受注表
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ] |