ソフトⅡコース担当 ブログのおにーさまこと高橋です。
昨日は、情報処理技術者試験でした。受験した人、手ごたえはどうですか?
特別試験に続き、基本情報技術者試験の解説を掲載したいと思います。
それでは、「平成23年度秋期基本情報技術者試験午後問2」です。問題はIPAのサイトにありますので、持ってない人はそちらを参照してください。
データベースの設計に関する基本的な問題です。
設問1
変更前に次のようなデータが格納されていたとします。(内線、入社年月日、住所、自宅電話、年齢は省略します)
部表
部コード | 部名 |
D | 総務部 |
E | 営業部 |
F | 開発部 |
従業員表
従業員番号 | 氏名 | 部コード |
2005012 | 情報太郎 | D |
2005013 | 基本二郎 | D |
2005014 | 応用三郎 | D |
2005015 | 技術四郎 | D |
2005016 | 入門五郎 | E |
A案では次のように格納されることになります。
部門表
部コード | 部名 |
D001 | 総務部人事課 |
D002 | 総務部経理課 |
E001 | 営業部海外課 |
E002 | 営業部国内課 |
F001 | 開発部企画課 |
F002 | 開発部開発課 |
従業員表
従業員番号 | 氏名 | 部コード |
2005012 | 情報太郎 | D001 |
2005013 | 基本二郎 | D002 |
2005014 | 応用三郎 | D002 |
2005015 | 技術四郎 | D001 |
2005016 | 入門五郎 | E001 |
B案では次のように格納されることになります。
部表
部コード | 部名 |
D001 | 総務部 |
D002 | 営業部 |
D003 | 開発部 |
課表
課コード | 課名 | 部コード |
S001 | 人事課 | D |
S002 | 経理課 | D |
T001 | 海外課 | E |
T002 | 国内課 | E |
U001 | 企画課 | F |
U002 | 開発課 | F |
従業員表
従業員番号 | 氏名 | 部コード |
2005012 | 情報太郎 | S001 |
2005013 | 基本二郎 | S002 |
2005014 | 応用三郎 | S002 |
2005015 | 技術四郎 | S001 |
2005016 | 入門五郎 | T001 |
A案では、部名「開発部」を「開発企画部」に変更が生じた時に、部門表の2行「開発部企画課」を「開発企画部企画課」に、「開発部開発課」を「開発企画部
開発課」に変更する必要があります。部名(aの解答エ)1つの変更に対し複数の変更、つまり「重複更新」(bの解答エ)が発生します。
「総務部」に属する従業員の氏名の一覧(cの解答ア)を表示することを考えます。「総務部」の属する課は「総務部人事課」と「総務部経理課」があります。
SQL文を作成すると
- SELECT 氏名 FROM 従業員表 , 部門表
WHERE 従業員表.部コード = 部門表.部コード
AND 部名 LIKE ‘総務部%’;
となります。LIKEを用いて前方一致の条件にします。副問合せを用いると次のようなSQL文も考えられます。
- SELECT 氏名 FROM 従業員表
WHERE 部コード IN (SELECT 部コード FROM 部門表 WEHRE 部名 LIKE
‘総務部%’);
設問2
解答群のウ、エをみると、従業員表の年齢と副問合せの結果のいずれかとが等しい(=
ANY)という条件になっています。副問合せの抽出列はCOUNT関数で、行数が求まります。年齢と行数といった異質なものを比較することはまずありませ
ん。従って、ウとエは除外されます。「GROUP BY」を用いてグループ化した場合、SELECT句に書くことのできるのは、GROUP
BYで指定した項目かグループ関数です。問題のSQL文をみると
- SELECT 課表.課コード , 課表.課名 , AVG(従業員表.年齢) FROM 課表 ,
従業員表 (以下省略)
です。 AVG(従業員表.年齢)はグループ関数なので問題ありません。課表.課コードと課表.課名がGROUP
BY句で指定されている必要があります。また、FROM句で2つの表が指定されているので、この2つの表を結合するための条件が必要です。解答はアになり
ます。イはGROUP BYで課表.課コードではなく、課表.部コードを指定しているので間違いです。
設問3
CREATE VIEWのASの後ろは副問合せ、つまりSELECTになります。この点からアとイは除外されます。ビューを作成する目的は、必要最小限の
情報のみを公開すること、すなわち従業員番号、氏名、課コード、内線のみを公開することにあります。ウのように「*」を用いると、全項目が公開されてしま
います。必要な項目のみを抽出しているエが正解になります。
設問4
設問2と同じ理由でウとエは除外されます。FROM句において2つの表を指定しているので、結合条件が必要です。イは結合条件がありません。アが正解で
す。
2011年(平成23年度)秋期の解説
- 平成23年度 秋 基本情報技術者試験 【問11】(その2)
- 平成23年度 秋 基本情報技術者試験 【問11】(その1)
- 平成23年度 秋 基本情報技術者試験 【問13】(その2)
- 平成23年度 秋 基本情報技術者試験 【問13】(その1)
- 平成23年度 秋 基本情報技術者試験 【問8】(その2)
- 平成23年度 秋 基本情報技術者試験 【問8】(その1)
- 平成23年度 秋 基本情報技術者試験 【問9】(その2)
- 平成23年度 秋 基本情報技術者試験 【問9】(その1)
- 平成23年度 秋 基本情報技術者試験 【問4】
- 平成23年度 秋 基本情報技術者試験 【問5】
- 平成23年度 秋 基本情報技術者試験 【問3】(その2)
- 平成23年度 秋 基本情報技術者試験 【問1】
- 平成23年度 秋 基本情報技術者試験 【問6】
- 平成23年度 秋 基本情報技術者試験 【問3】(その1)
- 平成23年度 秋 基本情報技術者試験 【問2】
- Date:
- この記事を
友だちに教える - LINE
- - HatenaBookmark
- GooglePlus