(合格を勝取る知識習得)
  情報処理試験合格を勝取る知識習得にはコレ!! お気軽にご活用ください。
  ▽ http://www.mag2.com/m/0000120201.html

  (このサイトの使い方)
    勉強したい午後問題を、下記アンカーより選択して下さい。  解説などが、わかり難い時には、画面左側の「お問い合わせ」より、ご連絡ください。
    午後過去問題・解答
  1. ソフトウェア開発技術者試験 平成19年春午後1  問1
  2. ソフトウェア開発技術者試験 平成19年春午後1  問2
  3. ソフトウェア開発技術者試験 平成19年春午後1  問3
  4. ソフトウェア開発技術者試験 平成19年春午後1  問4
  5. ソフトウェア開発技術者試験 平成19年春午後1  問5
  6. ソフトウェア開発技術者試験 平成19年春午後1  問6

  
・Oracle Master受験チケット…定価22,260円⇒14,648円(限定数のみ)
・Java、Oracle Solaris、NetBeans受験チケット…定価34,230円⇒31,492円

・MySQL試験用受験チケット…定価22,260円⇒20,924円
・オラクルオンライン試験用受験チケット…定価14,280円⇒12,752円

・チケットは電子チケット(バウチャー)ですので、全品送料無料
・メール送信による納品につき、最短ならご入金当日の納品も可能

・領収書発送は無料サービス(メール便)ご指定の宛名で発行OK
・オラクル社の正規販売代理店、システム会社が運営する安心SHOP

  ベンダー試験 格安受験チケット
				
  



  お薦め参考書・問題集

平成26年度【春期】【秋期】 応用情報技術者 合格教本 (情報処理技術者試験)

著者名: 大滝 みや子, 岡嶋 裕史
新品価格: ¥ 3,129
中古価格:
Amazon.co.jp 売上ランキング: 1940
出版社: 技術評論社 単行本(ソフトカバー)
在庫あり。

おすすめ平均
Amazonで詳しく見る

カスタマーレビュー
良い感じ
午前対策には十分すぎる(8〜9割レベル)が、午後対策には足りていない なので、これ1冊と、重点対策プラス過去問でちょうど良さげ 辞書としても使える、内容の濃い一冊です

ニュースペックテキスト 応用情報技術者 平成25・26年 (情報処理技術者試験)

著者名: TAC情報処理講座
新品価格: ¥ 2,940
中古価格: ¥ 3,999
Amazon.co.jp 売上ランキング: 6661
出版社: TAC出版 単行本
在庫あり。

おすすめ平均
Amazonで詳しく見る

カスタマーレビュー
FE試験の合格が前提です
当然ですがFE試験の範囲については単語を見せるだけでカバーしていません、よってFE試験を取得しているかFE試験の勉強を済ませている必要があります。 その前提の上で本書を評価するならば、理解を促すやり方の内容で1ヶ月程度かけてじっくり勉強するのに良い内容だと思います。 この手の中級以上の技術資格書で過去問以外のページがフルカラー表記のものは、かなりの確率で地雷書だと個人的には思ってたのですが、そんなことはなく十分に単語もカバーしており有用だと感じることが出来ました。 評価を一つ下げてるのは図解優先で図のサイズ重視のあまり、図の表記と説明文の位置が不便である箇所が散在するため。 非実用的と言うほど存在するわけではありませんが、図の解説を見返すためにページをパラパラするのは正直な所ダルいです。
応用情報技術者試験テキストの新たなスタンダード?
H24に基本情報に合格し、H26春の応用情報試験に向けて勉強中の者です。 応用情報試験は、基本情報よりもさらに試験範囲が広く深くなりますが、その試験範囲を分かりやすく網羅してくれています。(その分、かなり分厚いテキストになっていますが・・・。) 全ページがカラーで、情報を文字だけではなく視覚で捉えられるため、非常に見やすい構成になっています。 基本情報のテキストは、きたみりゅうじさんの「キタミ式イラストIT塾 基本情報技術者 平成25年度」や、柏木先生の「平成25年度 イメージ&クレバー方式でよくわかる 栢木先生の基本情報技術者教室 (情報処理技術者試験)」など、初心者向けの分かりやすいテキストが多く出ていますが、応用試験向けの分かりやすいテキストは少ないように思います。 その中で本書は、初心者向けにも分かりやすく噛み砕いた解説をしてくれています。 応用情報技術者試験向けのテキストの新しいスタンダードとしての地位を築き、今後も継続して発刊してくれることを願います。
図解思考
帯にも書いてありますが、オールカラーで構成されています。まさに図解思考です。 基本的に暗記する内容が多くなりますが、左脳だけでなく、右脳も使って覚えていけると思います。 文字だけだと眠くなる自分にはぴったりの構成でした。

平成26年度【春期】 応用情報技術者 パーフェクトラーニング過去問題集 (情報処理技術者試験)

著者名: 加藤 昭, 高見澤 秀幸, 芦屋 広太, 矢野 龍王
新品価格: ¥ 1,764
中古価格:
Amazon.co.jp 売上ランキング: 8403
出版社: 技術評論社 大型本
在庫あり。

おすすめ平均
Amazonで詳しく見る
応用情報技術者午後問題の重点対策〈2014〉 (情報処理技術者試験対策書)

著者名: 小口 達夫
新品価格: ¥ 3,570
中古価格: ¥ 6,535
Amazon.co.jp 売上ランキング: 2299
出版社: アイテック 単行本
通常2〜4週間以内に発送

おすすめ平均
Amazonで詳しく見る
やさしい応用情報技術者講座 2014年版 (やさしい講座シリーズ)

著者名: 高橋 麻奈
新品価格: ¥ 2,709
中古価格:
Amazon.co.jp 売上ランキング: 35969
出版社: SBクリエイティブ 単行本
在庫あり。

おすすめ平均
Amazonで詳しく見る

カスタマーレビュー
昔、挫折した文系SEさんにお勧め
一夜漬けで二種を取得してから10年以上経ち、ふと思うところが有り 応用情報を受験してみようと思いました。 文系出身のせいか当時一種の本を買ったときに、 書いてある内容が分からず挫折してしまったので (最初のページが情報理論で数学チックだった為かもしれません)、 ありきたりの参考書では二の舞になると思い、色々探しまくった結果に こちらにたどり着きました。 これなら私にも出来るかも・・・ 実際に平易な文章で書いてあり、今まで挫折した事が嘘のように 読み進めることが出来ました。 勿論私にはこれでもスラスラ読めませんでしたが、 一つ一つ理解することに重点を置き、掲載されている過去問を解いて 分からないことは、ネット、知人に聞くなりして理解することを心がけました。 勿論これ1冊では不足ですが、実際にまともに使ったのはこの本だけです。 あとは下記を心がければ合格圏内には入ると思います。 1)午前対策はIPAのサイトの過去問を解いて、答え合わせに時間をかけ  きちんと理解する。 2)午後は午前対策である程度知識的な事はカバーできるので、  過去問を本番同様のタイムスケジュールで解いて"出題のされ方"に慣れる。  ただし午後は過去問だけでは太刀打ち出来ないので、  それぞれのカテゴリについてはネットや本(試験対策ではない)を利用して  知識の引き出しを増やす事が重要かなとは思います。  (実務でカバーできる所も多々あります) 個人差はあるので上記で万端!とは言えませんが、 決して賢くない文系出身SEですが仕事をしながら何とかこれで合格できました。 ”昔挫折したなぁ・・・”と私と同様の思いを持っていらっしゃる方、 是非これでチャレンジしてみて下さい。
FEからAPへの架け橋に
「やさしい」という名の通り、非常に読み易かった。 しかし、この一冊では応用情報合格のレベルに達することは難しいかもしれない。 (午前対策としては、過去問演習をプラスして行えば大丈夫だろうが、午後対策は別途必要になるだろう) したがって、この参考書の対象範囲は、主に以下であると感じた。 1.FEを飛ばしてAPにチャレンジしたい人が始めに読む 2.FEをしばらく昔に取得し、基礎から再確認したい 3.本格的な学習に取り組む前に、ざっと内容を確認したい 過去問をベースに学習を進める人は別だが、 信頼できる参考書を片手に、何度も調べたり書き込んだりしながら学習するスタイルの人は、 別途もう一冊、より詳細な説明が為されている参考書が欲しくなるだろう。(例えば、合格教本のような) あらためて、まとめ。 □良い点 ・非常に噛み砕いた説明で、頭に入りやすい。 ・レイアウトが良く、読みやすい。(フォント、文字サイズ、図) □良くない点 ・「やさしく」するため、説明が不十分な箇所が散見される。 (例えば、「ユークリッド互除法」や「辞書攻撃」、「ポートスキャン」の説明。)

平成26-27年度 応用情報技術者 試験によくでる問題集 【午前】 (情報処理技術者試験)

著者名: 大滝 みや子
新品価格: ¥ 2,394
中古価格:
Amazon.co.jp 売上ランキング: 67172
出版社: 技術評論社 単行本(ソフトカバー)
近日発売 予約可

おすすめ平均
Amazonで詳しく見る
平成26-27年度 応用情報技術者 試験によくでる問題集 【午後】 (情報処理技術者試験)

著者名: 大滝 みや子
新品価格: ¥ 3,129
中古価格:
Amazon.co.jp 売上ランキング: 95854
出版社: 技術評論社 単行本(ソフトカバー)
在庫あり。

おすすめ平均
Amazonで詳しく見る

カスタマーレビュー
日本工学院八王子専門学校講師の大滝みや子氏による 午後問題対策の問題集です。 試験範囲ごとに全9章に分けられていて、 それぞれの分野ごとにまとめのポイントと 5問前後の過去問題&解説が掲載されています。 問題と解説の質が高く午後対策としては、 十分に利用価値のある一冊だと思います。 ただ、各章ごとのまとめポイントや 5問前後の過去問大とは別にTryという過去問&回答の掲載があるなど、 純粋な問題集を求めている方には別の出版社のものの方が好ましいかもしれません。 問題を解きながらポイントをしっかりとおさえたいという方、 合格教本だけでは午後が不安という方にはピッタリの内容だと思います。

情報処理教科書 応用情報技術者 2014年版 (EXAMPRESS)

著者名: 日高 哲郎
新品価格: ¥ 2,940
中古価格: ¥ 2,150
Amazon.co.jp 売上ランキング: 45695
出版社: 翔泳社 単行本(ソフトカバー)
在庫あり。

おすすめ平均
Amazonで詳しく見る

カスタマーレビュー
これ一冊では説明が足りないかも,
「応用」ということで、基礎があることを前提としているからか、説明がとても簡略です。 説明が足りない部分はネットで検索するなど必要かと思います。 個人的にはきたみりゅうじさんの「基本情報技術者」の説明が大変分かりやすかったので、きたみりゅうじさんに応用情報技術者試験の本も書いて欲しいな~と思いつつ、こちらで勉強しています。

ニュースペック過去問題集 応用情報技術者 平成26年春対策 (旧:合格するための過去問題集・情報処理技術者試験)

著者名: TAC情報処理講座
新品価格: ¥ 1,890
中古価格:
Amazon.co.jp 売上ランキング: 122864
出版社: TAC出版 単行本
近日発売 予約可

おすすめ平均
Amazonで詳しく見る



午後解答・解説   ソフトウェア開発技術者試験

 次の(1),(2)について答えよ。

(1) 本文中の【 a 】,【 b 】に入れる適切な字句を答えよ。
(2) 本文中の【 c 】に入れる適切な字句を解答群の中から選び,記号で答えよ。

解答群
ア 依存関係 イ 親子関係 ウ 包含関係


『 H19年春PM1 問2 設問1  解答・解説 』


午後解答・解説   ソフトウェア開発技術者試験

 オブジェクト指向分析設計に関する次の記述を読んで,設問1〜3に答えよ。


 E社では,株価の現在値と,変動の表示を定期的に行う,図1に示すようなシステム(以下,株価通知システムという)を開発することになった。株価通知システムには複数の株銘柄が登録されており,証券取引所から定期的に送信される最新の株価に基づき,株価通知システムの株価が株銘柄ごとに更新される。株価通知システムは,株銘柄ごとに表示時点の最新株価(現在値)を数値で,株価の変動の様子(値動き)をグラフで定期的に表示する。
 なお,当初は現在値表示と値動き表示の二つの表示機能だけを提供するが,将来的には株価分析用チャート表示など,新たな形式での表示機能の追加が予定されている。

WS000027.JPG

株価通知システムの開発を担当するF君は,次の設計方針に従い,UML(UnifiedModeling Lanuage)のクラス図とシーケンス図を用いたシステムのモデリングを行うことにした。

〔設計方針〕
・ 株価を保持する部分と,現在値や値動きなどの表示を行う表示部は,それぞれを個別のクラスとし,表示部には株価の値を保持しない。
・ すべての株銘柄は一つ以上の表示部と関連をもち,1回の株価更新で各表示を更新できるようにする。将来の表示機能追加に備え,表示部とめ関連は任意個可能とする。
・ 現在値表示や値動き表示などの表示機能に関しては,新たな形式の追加が予定されているので,適切な汎化を行い,部品化を図っておく。

 F君は,一つの株銘柄に対する複数の表示機能を,株価の管理を行う株銘柄クラス(モデル),株価の表示を行う株価ビュークラス及びそのサブクラス(ビュー),株価の更新を制御する株価更新部クラス(コントローラ)の三つに分けて実装することにした。作成したクラス図を図2に示す。
 株銘柄は,自身に依存するすべての株価ビューを,依存ビューの一覧としてもつ。株銘柄は,株価の変化に応じて,依存ビューの一覧に含まれるすべての株価ビューに対して表示を促すメッセージを送る。
 株価ビューは,依存先の株銘柄を属性としてもつ。表示を促すメッセージを受けた株価ビューは,表示に必要な情報を依存先の株銘柄から取得し,表示を行う。
 株銘柄と株価ビューの関連付けは,システム初期化部が関連付けのメッセージを送ることで行う。関連付けに関する処理のシーケンス図を図3に示す。また,定期的な株価更新と表示処理のシーケンス図を図4に示す。
 株価通知システムをこのように設計することで,将来新たな形式の表示機能を追加する場合,そのクラスを株価ビュークラスの【 a 】として実装し,そのインスタンスを対応する【 b 】クラスのインスタンスに依存ビューとして登録するだけでよい。【 b 】クラスでは,機能追加前と同じく,依存ビューの一覧に含まれるすべての株価ビューに対して表示の更新を促す処理を行うことによって,新たに追加された形式の表示についても適切に表示の更新が行われる。
 この方針は,一般にMVC(Model-View-Controller)と呼ばれ,一つのモデルを複数のビューによって表示し,モデルの変化を,それを表示するすべてのビューに反映する必要がある場合に用いられる。これは,モデルとビューの【 c 】,及びビューの汎化によって実現される。

WS000029.JPG

WS000030.JPG



『 H19年春PM1 問2  解答・解説 』


午後解答・解説   ソフトウェア開発技術者試験

>家具を販売するごとに営業担当者が販売単価を個別に設定できるように,
>【 g 】エンティティに属性“【 h 】”を追加する。

これは、営業担当者が成績を上げる為に、顧客別に独自に値引きをしたりして
販売活動を活性化する為ですね。

営業担当者さんの独自に設定した販売単価をきっちり残しておかないと
家具分類別販売実績や顧客企業別販売実績はもちろん、営業担当者別の成績を
つける時にも、どれだけ売上げを上げたのか分からなくなってしまいますね。

例えば、ある営業担当者さんは、家具を売りまくった。
単価10000円の椅子を 3000円に値引きして売りまくった。
沢山、売りさばく事が出来ても、実際には大赤字でしょうね。

こんな事をされては、会社としては、たまったものではないので、販売単価を
きちんと残しておく必要があるのです。

標準単価は、「単価管理」テーブル内の単価に保存してあるので良いのですが
実際に取引した販売単価は、現在のところ保持する場所が無いですね。

そこで、何処に保存して置くのが良いか?
ER図をじっくりと眺めてみましょう。

[ER図]
         販売
         ↓
単価管理←家具→販売明細


販売単価は、家具別に設定される単価なので、「販売」には持てないですね。
そうすると、「販売明細」か「家具」か「単価管理」ですが。。。

「単価管理」に販売単価を作ると、顧客企業別には販売単価をいれられません。
「家具」に販売単価を作ると、同じく顧客企業別には販売単価をいれられません。

両方とも、顧客企業には関係なく、一律で販売単価を設定する事になってしまいます。
これでは、営業担当者が腕を見せる事が、できませんね。

営業担当者は、顧客企業の担当者と折衝をしながら、営業活動をしていきたいですね。

そこで、販売の明細情報を保存している「販売明細」に販売単価を作ります。
すると、販売明細の主キーの一部である販売番号が変わると、顧客企業も変わるし、
販売年月日も変わりますね。

販売明細情報を保存しているトランザクションテーブル、やっぱりここに
実際の販売情報を保存して置くのが、良さそうですね。

「g」販売明細
「h」販売単価



『 H19年春PM1 問6 設問4-01  解答・解説 』


午後解答・解説   ソフトウェア開発技術者試験

 〔販売単価を個別に設定可能にする案〕中の【 g 】,【 h 】に入れる適切なエンティティ名及び属性名を答えよ。


『 H19年春PM1 問6 設問4  解答・解説 』


午後解答・解説   ソフトウェア開発技術者試験

最後に「m」「n」ですが。。。ここに入る値は。。。

( )の中は、相関副問合わせですね。
それに気付かないと「m」「n」に入れる値は思いつきません。
( )の中の単価管理をTN2と別名を付けている所もヒントですね。

すると
「m」には、家具番号を含む値ならば何でも良さそうですね。
「HM.家具番号」「KG.家具番号」「TN.家具番号」ならどれでも良さそうですね。

次に「n」です。
「n」には、販売をした日付が欲しいですね。
「HA.販売年月日」しかありませんね。

それでは、SQL文をまとめます。
以下の様になりますね。

SELECT HM.家具番号、 KG.家具名、 HM.数量、 TN.単価、
       HM.数量 * TN.単価 AS 小計
FROM   販売 HA、 販売明細 HM、 家具 KG、 単価管理 TN
WHERE  HA.販売番号 = :販売番号
 AND   HA.販売番号 = HM.販売番号
 AND   HM.家具番号 = KG.家具番号
 AND   KG.家具番号 = TN.家具番号
 AND   TN.適用開始年月日 =
 ( SELECT MAX(TN2.適用開始年月日)
   FROM   単価管理 TN2
   WHERE  TN2.家具番号 = KG.家具番号
    AND   TN2.適用開始年月日 <= HA.販売年月日 )
ORDER BY HM.家具番号
   


『 H19年春PM1 問6 設問3-03  解答・解説 』


午後解答・解説   ソフトウェア開発技術者試験

次に、( )で囲まれた副問合わせの部分に着目しましょう。
(実際には、まだこの時点では、副問合わせか相関副問合わせかは判断出来ません。)


>AND TN.適用開始年月日 =
>( SELECT 「l」
>  FROM 単価管理 TN2
>  WHERE TN2.家具番号 = 「m」
>   AND  TN2.適用開始年月日 <= 「n」 )


この部分から分かる事は。。。
( )で囲まれたSQL文から出力されるものは、年月日だなと推測出来ます。

なぜ、そうなるかわかりますか?

( )で囲まれたSQL文を
>AND TN.適用開始年月日 =

で比較しています。
つまり、TN.適用開始年月日と等しい事がWHERE句の条件となっています。

ということは、( )で囲まれた箇所のSQL文では、ある年月日が
出力される事が分かります。

ここで、( )内で使われている「単価管理」テーブルを確認すると適用開始年月日を保持していますね。
これが、副問合わせ内のSELECT句で書かれるのだなと分かります。

そして、更に、「=」で比較しているという事は、年月日は、必ずひとつでなければいけません。
副問合わせ等で複数の結果を返すようにするには「IN」や「EXISTS」を使わなければ
受け取る事が出来ず、エラーとなります。

ところが今回は
>AND TN.適用開始年月日 =
となっているので、副問い合わせの戻り値が、絶対に1つに絞られる必要がある事がわかります。

そして、副問合わせ内のWHERE句に着目します。

>AND TN.適用開始年月日 =
>( SELECT 「l」適用開始年月日
>  FROM 単価管理 TN2
>  WHERE TN2.家具番号 = 「m」
>   AND  TN2.適用開始年月日 <= 「n」 )

単価管理(家具番号、適用開始年月日、単価) 主キー:{家具番号、適用開始年月日}
家具番号と適用開始年月日が決まれば、一意に単価が決まるのに
WHERE句を見ると。。。

家具番号は「=」なので一意だが
適用開始年月日は「<=」となっていて複数条件に当てはまる事が分かります。

この条件下で、適用開始年月日を1つに絞る為には、集約関数を使わなければいけない事が
わかります。


集約関数には、以下のものがありましたね。
「SUM」:加算値
「COUNT」:行数
「AVG」:平均値
「MAX」:最大値
「MIN」:最小値

どれも複数の集合を1つに絞ってくれます。

ここで、条件を考えてみます。
ある家具の単価管理のデータを以下とします。

 家具番号   適用開始年月日     単価
 100   2008/04/01  4000
 100   2007/04/01  3000
 100   2006/04/01  2000

現在が「2008/07/01」だとすると
家具番号100の家具を買った時には、4000円と計算をしないとまずいですね。
過去の安い金額で計算されたら一大事です。

つまり、適用開始年月日の最大値のものが、計算結果に必要です。
すると副問合わせ内の「l」はMAX(適用開始年月日)と分かりますね。

>AND TN.適用開始年月日 =
>( SELECT MAX(適用開始年月日)
>  FROM 単価管理 TN2
>  WHERE TN2.家具番号 = 「m」
>   AND  TN2.適用開始年月日 <= 「n」 )




『 H19年春PM1 問6 設問3-02  解答・解説 』


午後解答・解説   ソフトウェア開発技術者試験

それでは、まず、〔単価改定履歴をもつ案〕を採用した際に追加した「単価管理」を
含めたER図を確認しましょう。

SQL文を作る時には、ER図を参照する事により、楽に作成出来ますからね。

[ER図]
         販売
         ↓
単価管理←家具→販売明細


では、問題文に着目しましょう。
>販売明細の一覧には,“家具番号,家具名,販売数量,単価,小計”の一覧が,家具番号の昇順で出力される。
とありますね。 これは、SELECT句の内容「i」「j」ですね。

>SELECT HM.家具番号、 KG.家具名、 HM.数量、 「i」、
>       「j」 AS 小計

「i」は、TN.単価だとわかります。
単価管理という新規テーブルで、単価は家具番号別適用開始年月日別に管理する事になっていましたね。

「j」は、小計ということで、数量×単価が相応しいですね。 HM.数量 * TN.単価

SQLの出力イメージとしては。。。
家具番号  家具名    販売数量   単価      小計
001   子供用椅子   3     2000   6000
002   大人用椅子   2     10000  20000
というような感じですね。



次に、問題文にこのような記述があります。
>出力対象となる販売の販売番号を表すホスト変数は“:販売番号”とする。

ここで、もう一度、ER図を確認してみましょう。

[ER図]
         販売
         ↓
単価管理←家具→販売明細


ここで、販売の主キーである、販売番号のホスト変数“:販売番号”を使って
販売明細を出力するんだなってわかります。

つまり、WHERE句の条件に、“:販売番号”を与えてそれに紐付けされる
販売明細、家具、単価管理がSQL文で抽出されるのだなと推測出来ます。

ということで、WHERE句の条件「k」にホスト変数“:販売番号”を埋め込みましょう。
「k」は HA.販売番号 = :販売番号
となりますね。

その下のAND条件で結ばれる条件式は
ER図の各テーブルを結ぶ為に、主キーと外部キーを「=」で結んでいるだけですね。

ここまでのSQL文をまとめておきます。
SELECT HM.家具番号、 KG.家具名、 HM.数量、 TN.単価、
       HM.数量 * TN.単価 AS 小計
FROM   販売 HA、 販売明細 HM、 家具 KG、 単価管理 TN
WHERE  HA.販売番号 = :販売番号
 AND   HA.販売番号 = HM.販売番号
 AND   HM.家具番号 = KG.家具番号
 AND   KG.家具番号 = TN.家具番号
 AND   TN.適用開始年月日 =
 ( SELECT 「l」
   FROM   単価管理 TN2
   WHERE  TN2.家具番号 = 「m」
    AND   TN2.適用開始年月日 <= 「n」 )
ORDER BY HM.家具番号



『 H19年春PM1 問6 設問3-01  解答・解説 』


午後解答・解説   ソフトウェア開発技術者試験

〔単価改定履歴をもつ案〕を採用した際の販売明細を出力するためのSQL文を次に示す。SQL文中の【 i 】〜【 n 】に入れる適切な字句又は式を答えよ。
 ただし,販売明細の一覧には,“家具番号,家具名,販売数量,単価,小計”の一覧が,家具番号の昇順で出力される。また,出力対象となる販売の販売番号を表すホスト変数は“:販売番号”とする。
 なお,列を表す場合,テーブル名の別名を省略してはならない。

WS000025.JPG

『 H19年春PM1 問6 設問3  解答・解説 』


午後解答・解説   ソフトウェア開発技術者試験

最後に、「f」について考えてみましょう。

では、まずSQL文をもう一度、確認してみましょう。

>SELECT 家具.家具分類番号, 家具分類.家具分類名, SUM(家具.単価 * 販売明細.数量) AS 販売実績
>FROM  販売, 販売明細, 家具, 家具分類
>WHERE 販売.販売年月日 BETWEEN :指定月開始日 AND :指定月終了日
>AND  販売.販売番号 = 販売明細.販売番号
>AND  販売明細.家具番号 = 家具.家具番号
>AND  家具.家具分類番号 = 家具分類.家具分類番頭
>「f」 家具.家具分類番号, 家具分類.家具分類名
>ORDER BY 販売実績 DESC
となっていますね。

ここでの解答のポイントは、SQL文で、集約関数が使われている事です。

集約関数には、以下のものがありましたね。
「SUM」:加算値
「COUNT」:行数
「AVG」:平均値
「MAX」:最大値
「MIN」:最小値
これらは、暗記をしておかなければいけない関数であると
お伝えしてありますね。

そして、集約関数を実行したら、「GROUP BY」でグルーピングしなければ
エラーとなってしまいます。

グルーピングする対象は何かというと。。。
「SELECT句で記述された、集約関数ではない全ての列」です。

>SELECT 家具.家具分類番号, 家具分類.家具分類名, SUM(家具.単価 * 販売明細.数量) AS 販売実績
すると。。。対象は「家具.家具分類番号, 家具分類.家具分類名」ですね。

「f」の行を確認すると。。。
>「f」 家具.家具分類番号, 家具分類.家具分類名

ぴったりと一致しますね。
よって、「f」は「GROUP BY」だとわかります。

集約関数が出て来たら、必ず「GROUP BY」が必要であると覚えておいて下さいね。


『 H19年春PM1 問6 設問2-03  解答・解説 』


午後解答・解説   ソフトウェア開発技術者試験

続いて、「e」について問題文を見てみましょう。

>WHERE 販売.販売年月日 「e」 :指定月開始日 AND :指定月終了日
となっていますね。

この問題についても、前回の関数と同じで、形式を暗記していないと解けません。
AからBの間 「対象列 BETWEEN A AND B」

Aが集計対象となる期間の始めをあらわす値
Bが集計対象となる期間の終わりをあらわす値 が入ります。

そうすると、
WHERE 販売.販売年月日 BETWEEN :指定月開始日 AND :指定月終了日  
となりますね。

でも、この記述方法は、違う書き方に代えることもできますね。
では、考えて見ましょう。。。。

どうですか、わかりましたか?
答えです。

WHERE 販売.販売年月日 >= :指定月開始日
AND  販売.販売年月日 <= :指定月終了日

英作文の様に、異なる書き換えも同時に覚えてしまえば、意味や使用方法が暗記しやすくなりますね。

よって、「e」は、BETWEEN となります。



『 H19年春PM1 問6 設問2-02  解答・解説 』


午後解答・解説   ソフトウェア開発技術者試験

>本文中の【 d 】〜【 f 】に入れる適切な字句を答えよ。

問題文より、注目する箇所はこの2つのSQLですね。

WS000016.JPG

問題文より
>図1の販売実績レポートを出力する二つのSQL文は次のとおりである。
>ただし,“:指定月開始日”,“:指定月終了日”は,それぞれレポートの出力対象となる
>販売年月の開始日,終了日を表すホスト変数である。

本来、仕事などの実際の業務であれば、図1の販売実績レポートをじっくりと見て
一からSQL文を作る必要がありますが、試験として出題されているSQLは、大概、穴埋めで出題されています。
なので、SQL文をじっくりと見て、効率良く解答をしていくテクニックを身に付けましょう。

まず、「d」に着目します。 私がこの問題を解く時に、心の中で気付く点を列挙します。
1.「d」は、SELECT句の中で、記述されているなぁ。
2.「d」の後ろが(家具.単価 * 販売明細.数量)と( )で括られているなぁ
この2つの特徴から、ここは何やら関数が入るのだな。。。と推測が出来ますね。

そして、「d」(家具.単価 * 販売明細.数量) AS 販売実績 となっており
この項目は、販売実績という名前に、変えられている事が読み取れます。

ここで、「図1の販売実績レポート」を確認します。
販売実績を確認すると。。。家具分類別(顧客企業別)の販売実績とわかりますね。

WS000017.JPG

(家具.単価 * 販売明細.数量)で、つまり「単価×数量」で販売時の金額を算出し
それを、家具分類別に纏めれば(加算すれば)、家具分類別の販売実績が導出できると
判断できます。

つまり、「d」は加算を行う関数である、「SUM」であるとわかりますね。

「SUM」加算値
「COUNT」行数
「AVG」平均値
「MAX」最大値
「MIN」最小値
これらは、暗記をしておかなければいけない関数ですね。


『 H19年春PM1 問6 設問2-01  解答・解説 』


午後解答・解説   ソフトウェア開発技術者試験

本文中の【 d 】〜【 f 】に入れる適切な字句を答えよ。

『 H19年春PM1 問6 設問2  解答・解説 』


午後解答・解説   ソフトウェア開発技術者試験

最後に、エンティティ間の「c」
つまり、リレーションシップについて、考えてみましょう。

リレーションシップと言うことは、「c」に入る可能性があるのは
「−」:1対1
「→」:1対多
「←」:多対1
しかありえません。

前の問題より
家具(家具番号、家具分類番号、家具名、重量、寸法、単価) 主キー:家具番号 外部キー:家具分類番号

そして、ER図より
販売明細(販売番号、家具番号、数量) 主キー:{販売番号、家具番号}
となっていますね。

あと、販売明細とリレーションシップ(線で繋がっている)がある販売にも注目しましょう。
販売(販売番号、販売年月日、顧客企業番号、顧客担当者番号、営業担当者番号、販売合計金額) 主キー:販売番号
                                            外部キー:顧客企業番号、顧客担当者番号、営業担当者番号

この3つのエンティティを眺めていると、気付く事があると思います。
販売明細は。。。
販売の主キーである販売番号を持ち
家具の主キーである家具番号を持っている。
そして、この二つで主キーが構成されている。

このようなエンティティを「連関エンティティ」といいますね。

販売 → 販売明細 ← 家具
販売と販売明細は「1対多」
家具と販売明細も「1対多」
そして、連関エンティティで挟んでいる販売と家具は「多対多」です。
これは、暗記すべき重要な内容です。 知らなければしっかりと暗記をして下さい。

よって、cの解答は「→」となりますね。


『 H19年春PM1 問6 設問1-03  解答・解説 』


午後解答・解説   ソフトウェア開発技術者試験

次に、下記の図の「b」に着目して下さい。

WS00013.JPG
家具分類から家具に向けて、矢印が引かれています。
これは、家具分類と家具の関係が1対多であることを、表していますね。

前問のaより
家具分類(家具分類番号、家具分類名) 主キー:家具分類番号
ですね。

つまり家具分類から家具に矢印を引くには、家具に家具分類の主キーを保持しなくてはいけません。
また、これは外部キー(点線で表示)となりますね。

そして、家具のER図を見ると主キーである実線が無いこともわかりますね。
主キーも勿論必要です。(他の全てのエンティティには、主キー(実線)があるのが確認できますね)

主キーは、家具を一意に表す「家具番号」とします。
家具(家具番号、家具分類番号、家具名、重量、寸法、単価) 主キー:家具番号 外部キー:家具分類番号
となりますね。

よって「b」の解答は

家具番号
家具分類番号

となります



『 H19年春PM1 問6 設問1-02  解答・解説 』


午後解答・解説   ソフトウェア開発技術者試験

>図2のE-R図中の【 a 】〜【 c 】に入れる適切な属性名及びエンティティ間の関連を答え,E-R図を完成させよ。
> なお,エンティティ間の関連及び属性名は,甲2の凡例に倣って示せ。

まずは、「ER図を完成させよ」という問題ですね。

与えられた資料としては、「図1 平成19年2月分 家具分類別、顧客企業別 販売実績レポート」ですね。
これを、モデリングしましょう。

このレポートは、二つの表が1枚のレポートとして記述されています。
「家具分類別 販売実績」「顧客企業別 販売実績」これを別々に、モデリングしてみましょう。

手順としては、以下のものが必要です。

1.項目の洗い出し
2.第一正規形
3.第二正規形
4.第三正規形

では、はじめてみましょう。

WS00012.JPG
1.「家具分類別 販売実績」項目の洗い出し

{家具分類番号、家具分類名、販売実績、販売実績合計}


2.「家具分類別 販売実績」第一正規形にする

家具分類(家具分類番号、家具分類名、販売実績、販売実績合計) 主キー:家具分類番号
表名を、家具分類とする。
ドメインが単純で、繰り返しも存在していないので、第一正規形を満たしている。


3.「家具分類別 販売実績」第二正規形にする

家具分類(家具分類番号、家具分類名、販売実績、販売実績合計) 主キー:家具分類番号
候補キー{家具分類番号}にあらゆる部分関数従属が存在しないので、第二正規形を満たしている。


4.「家具分類別 販売実績」第三正規形にする

家具分類(家具分類番号、家具分類名、販売実績、販売実績合計) 主キー:家具分類番号
候補キー{家具分類番号}にあらゆる推移関数従属が存在しないので、第三正規形を満たしている。

但し、ここで販売実績合計は、販売実績をサマリしたもので、導出項目である。
そのため、第三正規形の段階で、この属性をはずす。

家具分類(家具分類番号、家具分類名、販売実績) 主キー:家具分類番号


また、問題文より
>SQL文1は,現在の家具の単価から算出された金額を集計しているので,販売時の単価が
>現在の単価と異なる場合,販売時の実績と異なる金額を出力してしまう可能性が考えられる。

とある。
つまり、販売実績の金額も導出項目であると判断できる。
この項目もはずす。

すると
家具分類(家具分類番号、家具分類名) 主キー:家具分類番号 となる。

これが「a」の解答となる。


  家具分類番号
  家具分類名


次に。。。続きます。


『 H19年春PM1 問6 設問1-01  解答・解説 』


午後解答・解説   ソフトウェア開発技術者試験

 図2のE-R図中の【 a 】〜【 c 】に入れる適切な属性名及びエンティティ間の関連を答え,E-R図を完成させよ。
 なお,エンティティ間の関連及び属性名は,甲2の凡例に倣って示せ。


『 H19年春PM1 問6 設問1  解答・解説 』


午後解答・解説   ソフトウェア開発技術者試験

家具販売管理システムに関する次の記述を読んで,設問1〜4に答えよ。

 家具を製造・販売するC社では,3か月前に販売管理システム(以下,本システムという)を稼働させた。本システムは,顧客向けの販売明細などが添付された請求書,社内向けの販売実績レポートなどを提供する機能をもつ。システム稼働から3か月が経過したある日,販売実績レポートに問題が発生した。

〔発生した問題とE−R図及びSQL文の確認〕
 問題が発生した平成19年2月分の販売実績レポートを図1に示す。

WS000012.JPG

 家具分類別と顧客企業別の販売実績の合計は同じになるはずだが,家具分類別の方が顧客企業別よりも200千円少ない金額になってしまっている。
 この問題の原因を追究することになったDさんは,まずE-R図及び販売実績レポートの出力に使用しているSQL文を確認することにした。

 本システムのE-R図を図2に示す。
 なお,本システムでは,E-R図に合わせてエンティティ名をテーブル名(表名),属性名を列名にして,適切なデータ型でテーブル定義した関係データベースによって,データを管理している。

WS000013.JPG

 図1の販売実績レポートを出力する二つのSQL文は次のとおりである。ただし,“:指定月開始日”,“:指定月終了日”は,それぞれレポートの出力対象となる販売年月の開始日,終了日を表すホスト変数である。

WS000014.JPG

〔原因の推測と調査の実施〕
 Dさんは二つのSQL文に,そこから出力される販売実績に差異を生じさせる要因がないかを検討した。SQL文2は,販売時の実績を集計しているだけであるので,入力ミスがないとしたら,実際の販売金額を出力していると判断できる。SQL文1は,現在の家具の単価から算出された金額を集計しているので,販売時の単価が現在の単価と異なる場合,販売時の実績と異なる金額を出力してしまう可能性が考えられる。その販売時の単価と現在の単価との相違が原因ではないかと推測した。
 そこでDさんは家具の単価の設定方法について調査を行ったところ,次の3点に整理することができた。
・ 家具の単価は四半期に1回程度の頻度で不定期に改定される。最後に改定が適用されたのは平成19年3月1日である。
・ 営業時間中に単価が改定されることはない。家具テーブルの単価は,改定が適用される前日のオンラインシステムが稼働していない営業時間外に更新される。
・ 営業部門から,家具を販売するごとに販売単価を個別に設定できるようにしたいという要望が出ている。しかし,現状では,顧客ごと,又は販売ごとに単価を変更することはできない。

 これらの家具の単価の設定方法から,今回の問題は平成19年3月1日に実施された単価改定が原因であることが判明した。そこで,まず,この問題を回避するために,データ構造を見直した次の案を検討することにした。
〔単価改定履歴をもつ案〕
 家具ごとに単価改定履歴をもつことができるように,家具エンティティから属性“単価”を削除し,単価管理エンティティを追加する。図3は追加した単価管理エンテンティと家具エンティティとの関係を示したE-R図である。
 なお,図3中の【 b 】には,図2中の【 b 】と同一のものが入る。

WS000015.JPG

 さらに,今回の問題を回避するだけでなく,営業部門から出されている要望を実現するために,次の案も検討した。
〔販売単価を個別に設定可能にする案〕
 家具を販売するごとに営業担当者が販売単価を個別に設定できるように,【 g 】エンティティに属性“【 h 】”を追加する。

『 H19年春PM1 問6  解答・解説 』


午後解答・解説   ソフトウェア開発技術者試験

まず、問題文からネットワーク内で、どのような事が起こっているのか確認をして見ましょう。

>社内LANからインターネットのWebを参照する場合,ファイアウォールX及びYは,
>社内からインターネットに向かうアクセス要求のパケットと,
>インターネットから社内に向かう応答のパケットを通過させる必要がある。

と問題にあります。
これを図で表すとこんな感じですね。

WS6.JPG

社内のクライアントPCからのHTTP(ポート番号:80)のGETコマンドをインターネット側に通過させる必要があります。

送信元IP           送信先IP            送信元ポート番号  送信先ポート番号
社内のクライアントPCのIP  インターネット上のWebサーバ   >1024       80

ちなみに、送信元ポート番号は1024より大きなランダムな値を使用します。
この値はOSが適当に値を決定します。 問題文では、「任意」となっていますね。


そしてその要求に対する応答として、以下のような応答パケットが帰ってきます。

送信元IP            送信先IP           送信元ポート番号  送信先ポート番号
インターネット上のWebサーバ  社内のクライアントPCのIP    80        >1024


この要求に対する「応答パケット」が今回の問題で問われている内容です。

応答パケットとして帰ってきたパケット内のデータ部に、HTMLファイルのデータが格納されています。
これをPC上の記憶領域に保持して、そのデータをIEなどのブラウザを通して見ることにより、はじめて、HPなどの人間が見れる形式に、変換して見ているのです。

なので、ファイアーウォールX、ファイアーウォールYでは、要求パケット・応答パケットの両方を通過させる必要があります。
ところが、悪意を持った者が、応答パケットを偽装して社内のクライアントPC向けにパケットを流すとファイアーウォールは通過を許可しているので、社内まで侵入する事が出来てしまいます。

これを防ぐ為に、「動的パケットフィルタリング」機能を用いてアクセス制御を行います。
常に応答のパケットを許可するのではなく、ファイアーウォールX、ファイアーウォールYを通過した要求パケットを記憶して、通過したパケットの応答だけを動的に(一時的に)通過許可をするのですね。

これを判断する方法もやっぱり「送信元IP、送信先IP、送信元ポート番号、送信先ポート番号」で判断しています。

以上より、lの解答は「ウ」だと分かりますね。


『 H19年春PM1 問1 設問3-01  解答・解説 』


午後解答・解説   ソフトウェア開発技術者試験

最後に、表5「ルータDのパケットフィルタ設定」を考えていきましょう。
ルータDは、協力会社LANの出入り口でフィルタリングしているルータです。

例によって、表3〜表5のパケットフィルタ設定に関係をしている問題文は、以下の箇所です。
>社員用LAN1及び社員用LAN2からは,インターネットのWebへのアクセス,
>電子メールの送受信,及び社内LAN全体へのアクセスを可能にする。

>協力会社用LANからは,インターネットのWebへのアクセスと,
>グループウェアサーバへのアクセスだけを可能にする。

つまり、この文章から、ルータD(表5)で必要と思われる設定は
社員用LAN1からのアクセス(社員用LAN1→協力会社用LANの方向の為、表5では関係無し)
社員用LAN2からのアクセス(社員用LAN2→協力会社用LANの方向の為、表5では関係無し)
協力会社用LANからのインターネット上全てのWebサーバ(anywhere)へのアクセス(HTTP ポート番号:80)
協力会社用LANからのグループウェアサーバ(192.168.10.100)へのアクセス(社内グループウェア ポート番号:52000)

通常であれば、「協力会社用LANからの〜」で始まる2ルール、そして全ての不許可を表す1ルール
さえ設定すればOKです。(合計3ルール)

送信元ポート番号  状態  送信元IPアドレス  送信先IPアドレス
80        許可  anywhere   h「anywhere」
j「52000」  許可  anywhere   k「192.168.10.100」
any       禁止  anywhere   anywhere

ところが、問題文を見ると表5には、5ルールあります。
それも、1行目と2行目は、「禁止」を表しているルールですね。
この2つのルールは、協力会社用LANから社員用LAN1、社員用LAN2へのHTTPアクセス(ポート番号:80)を
禁止していますね。

これは、協力会社用LANからのインターネット上全てのWebサーバ(anywhere)へのアクセス(HTTP ポート番号:80)
を許可している為、あえてそれよりも優先度が高いフィルタリングテーブルの上位の位置(1行目、2行目)に、
社員用LAN1、社員用LAN2への禁止のルールを記述しているのですね。


(下図参照)

WS00006.JPG


では、これらを表5の形式にそって、纏めてみましょう。
通信の方向:協力会社用LAN→社内LAN

送信元ポート番号  状態  送信元IPアドレス  送信先IPアドレス
80        禁止  anywhere   192.168.10.1〜192.168.10.254
80        禁止  anywhere   192.168.20.1〜192.168.20.254
80        許可  anywhere   h「anywhere」
j「52000」  許可  anywhere   k「192.168.10.100」
any       禁止  anywhere   anywhere

これが、j,kの解答となります。



『 H19年春PM1 問1 設問2-03  解答・解説 』


午後解答・解説   ソフトウェア開発技術者試験

設問3

 本文中の【 l 】に入れる適切な字句を解答群の中から選び,記号で答えよ。

解答群
ア 送信先ボート番号が80,送信元ポート番号が任意で,アクセス要求に対する応答のパケットとして作成された不正パケット

イ 送信先ポート番号が80,送信元ポート番号が任意で,アクセス要求のパケットとして作成された不正パケット

ウ 送信先ポート番号が任意,送信元ポート番号が80,アクセス要求に対する応答のパケットとして作成された不正パケット

エ 送信先ポート番号が任意,送信元ポート番号が80で,アクセス要求のパケットとして作成された不正パケット



『 H19年春PM1 問1 設問3  解答・解説 』


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。