ソフトⅡコース担当 ブログのおにーさまこと高橋です。
問3を飛ばしていたみたいです。ということで、今日は平成27年度春期基本情報技術者試験午後問3の解説をしたいと思います。問題は、IPAのサイトをご覧ください。
設問1
図1の帳票から項目を抜き出すと次のようになります。
- 世帯表(氏名1、住所、電話番号、登録日、班、氏名2、続柄、性別、生年月日、備考)
氏名は区別のため氏名1、氏名2としています。この内、(氏名2、続柄、性別、生年月日、備考)は、1つの帳票内で複数の値があります。従って、繰り返し項目が存在するので非正規形であり、繰り返し項目を別の表にして、第1正規化を行います。ここでは、会員表を作成することが該当します。空欄aの正解はイです。
- 会員表(氏名2、続柄、、続柄名称、性別、性別名称、生年月日、備考)
と考えると、続柄名称は続柄に、性別名称は性別に従属するので、推移従属となります。推移従属部分を別表にするのは第3正規化です。空欄bの正解はエです。
設問2
1940年より前に生まれたというのが条件です。1940年より前とは、
- 1940年1月1日より前
- 1939年12月31日以前
のいずれかです。同じ世帯番号は1つにまとめるということなので、世帯番号でグループ化し、1つにします。正解はウです。
設問3
会員1人は会員表の1行です。従ってCOUNT(*)で会員数が求まります。1世帯には、複数の会員がいます。同じ世帯番号の会員を1つとしてカウントすると世帯数になります。同じ世帯番号を1つとしてカウントするには、DISTINCTを用います。
- COUNT(DISTINCT 世帯表.世帯番号)
とします。DISTINCTをCOUNTの引く数に書くことに注意します。正解はウです。
設問4
FROM句をみると、世帯表と会員表を結合しています。従ってWHERE条件には、この2つの表を結合するための結合条件が必要です。世帯番号が等しいという条件になるので、「会員表.世帯番号=世帯表.世帯番号」です。更に生年月日が20030402~20090401であるという条件があります。この条件は範囲なのでBETWEENが使えます。「会員表.生年月日 BETWEEN 20030402 AND 20090401」です。この2つの条件がともに成り立つ場合なので、ANDで結びます。正解はエです。
設問1空欄bを考えるときに、正規化後の表から、逆に元に表の項目を考えることを思いつくが難しかったかもしれませんが、他はそれ程難しくなかったのではないかと思います。
2015年(平成27年度)春期の解説
- 平成27年度 春 基本情報技術者試験 【問13】(その2)
- 平成27年度 春 基本情報技術者試験 【問13】(その1)
- 平成27年度 春 基本情報技術者試験 【問8】(その2)
- 平成27年度 春 基本情報技術者試験 【問8】(その1)
- 平成27年度 春 基本情報技術者試験 【問4】(その2)
- 平成27年度 春 基本情報技術者試験 【問3】
- 平成27年度 春 基本情報技術者試験 【問7】
- 平成27年度 春 基本情報技術者試験 【問4】(その1)
- 平成27年度 春 基本情報技術者試験 【問5】
- 平成27年度 春 基本情報技術者試験 【問1】(その2)
- 平成27年度 春 基本情報技術者試験 【問6】
- 平成27年度 春 基本情報技術者試験 【問1】(その1)
- 平成27年度 春 基本情報技術者試験 【問2】
- Date:
- この記事を
友だちに教える - LINE
- - HatenaBookmark
- GooglePlus