平成19年度 春期 ソフトウェア開発技術者試験 問61−80 解答編




このページは

ソフ開

(ソフトウェア開発技術者試験)

解答と解説のページです。

問題だけで勉強したい方は目次へ戻ってください



問61 次の関係“注文”の属性に@〜Fの関数従属性があるとき、主キーとして正しいものはどれか。ここで、(A,B)は、属性AとBの組を表し、A→Cは、CがAに関数従属していることを表す。

画像(問61)を表示できません
(注文番号)
(注文番号、顧客番号)
(注文番号、顧客番号、商品番号)
(注文番号、商品番号)
解答
解説 まず、データベースの正規化とは、重複や矛盾を排除して、データベースの一貫した内容を保障します。リレーションデータベースの正規化にはいくつかの段階があり、通常は第3正規形までですが、ボイス・コッドや第4、第5正規形というのもあります。

第1正規形:繰り返しや、反復している部分を独立させる。
第2正規形:第1正規形であり、部分関数従属を除去する(完全関数従属にする)
第3正規形:第2正規形であり、主キー以外に従属するものを除去する(推移従属を除去する)

用語についても少し解説しておきます。
関数従属:BがAに関数従属するとは、A(例:社員番号)を決めるとB(社員名)が一意に決定するというもの。Aを決定項、Bを従属項といいA→Bであらわす。
完全関数従属:決定項に余分なものがないときにいう。社員番号→社員名など。
部分関数従属:決定項に余分なものがあるときにいう。{社員番号、部署番号}→社員名など(部署番号がなくても社員名を特定できる)
推移関数従属:主キー以外に従属するものをいう。{社員番号}→{部署番号、部署名、社員名}のとき部署名は、部署番号にも従属しているので推移従属となる。

矢印の右側にあるものは、従属しているので、主キーにはなりません。つまり、多くても左辺の集合(注文番号、商品番号、顧客番号)となります。注文番号→顧客番号があるので、顧客番号は主キーの集合から除くことができます。よって、(注文番号、商品番号)が主キーの組といえます。

問62 データベースの正規化の目的のうち、適切なものはどれか。
アクセスパスを固定して、データベースのアクセス速度を上げる。
属性間の従属関係を単純化して、更新時の物理的なI/O回数を最小にする。
データの重複を排除して、重複更新を避け、矛盾の発生を防ぐ。
テーブルの大きさを平準化して、データの参照速度を上げる。
解答
解説 データベースの正規化とは、重複や矛盾を排除して、データベースの一貫した内容を保障します。リレーションデータベースの正規化にはいくつかの段階があり、通常は第3正規形までですが、ボイス・コッドや第4、第5正規形というのもあります。

第1正規形:繰り返しや、反復している部分を独立させる。
第2正規形:第1正規形であり、部分関数従属を除去する(完全関数従属にする)
第3正規形:第2正規形であり、主キー以外に従属するものを除去する(推移従属を除去する)

用語についても少し解説しておきます。
関数従属:BがAに関数従属するとは、A(例:社員番号)を決めるとB(社員名)が一意に決定するというもの。Aを決定項、Bを従属項といいA→Bであらわす。
完全関数従属:決定項に余分なものがないときにいう。社員番号→社員名など。
部分関数従属:決定項に余分なものがあるときにいう。{社員番号、部署番号}→社員名など(部署番号がなくても社員名を特定できる)
推移関数従属:主キー以外に従属するものをいう。{社員番号}→{部署番号、部署名、社員名}のとき部署名は、部署番号にも従属しているので推移従属となる。


問63 地域別に分かれている同じ構造の三つの商品表、“東京商品”、“名古屋商品”、“大阪商品”がある。次のSQL文と同等の結果が得られる関係式はどれか。ここで、三つの商品表の主キーは“商品番号”である。また、X−YはXからYの要素を除いた差集合を現す。

画像(問63)を表示できません
(大阪商品 ∩ 名古屋商品) − 東京商品
(大阪商品 ∪ 名古屋商品) − 東京商品
東京商品 − (大阪商品 ∩ 名古屋商品)
東京商品 − (大阪商品 ∪ 名古屋商品)
解答
解説 UNION句は、二つの表を結合するために用いられます。上のSELECT文は、大阪商品の中で東京商品ではないものを抽出しています。下のSELECT文は、名古屋商品で東京商品でないものを抽出しています。この2つの表を結合するので、大阪か名古屋の商品であり、東京の商品でないものの集合を得ることができます。

問64 業務ルールが次のように与えられている。これに基づきデータモデルを作成した。適切なデータモデルはどれか。ここで、1 *は1対多の関連を表す。

[業務ルール]
この会社は語学教材を販売している。教材は教科書、辞書など多品種にわたる。営業員は複数の担当地域が定められており、担当地域の顧客から受注を得る。一つの地域を複数の営業員が担当する。
画像(問64ans)を表示できません
解答
解説 『営業員は複数の担当地域が定められている』から、営業員と担当地域は1対多になります。さらに『一つの地域を複数の営業員が担当する』を加えると、地域と営業員は多対多の関係となり、これに適合するのは選択肢ウとなります。(

問65 関係データベースのビューに関する記述のうち、適切なものはどれか。
ビューでは、元の表の列名を異なる名称で定義することができる。
ビューは、元の表から指定した列全体を抜き出して定義するものであり、指定条件を満足する行だけを抜き出して定義することはできない。
二つ以上の表の結合によって定義されたビューは、いつでも更新操作が可能である。
元の表に新たな列を追加するときは、既存のビューにも影響がでるので、ビューを再定義する必要がある。
解答
解説 ビューとは、実表ではない、利用者の視点における仮想的な表(列名などを別名で定義することも可能)です。ビューの定義は、CREATE VIEWとAS SELECTを使って行われます。また、更新する際は、元のデータと対応づいていなければなりません。よって、集計データであるGROUPBY句でまとめられている場合、複数の表から作られている場合、グループ関数・DISTINCT(重複を削除)を使っている場合は、更新ができません。

問66 T1表とT2表が、次のように定義されているとき、次のSELECT文と同じ検索結果が得られるSELECT文はどれか。

画像(問66)を表示できません
画像(問66ans)を表示できません
解答
解説 まず、2つの表の定義を確認します。

T1は、SNO(主キーで6文字列)とSNAME(20文字列)の2つの列があります。
T2は、CODE(4文字列)とSNO(6文字列)とSURYO(整数)の3つの列があります。

SELECT文では、DISTINCTにより重複を1つにまとめ、二つのSNOにより表を結合し、SNAMEで昇順に並べています。

選択肢ア:INを使って、T2存在するSNOを元のSELECT文のSNO(これはT1のSNO)と比べています。(正しい)
選択肢イ:INを使って比較していますが、T1のSNOを取り出しているので、T2との比較をしていません。
選択肢ウ:NOT INを使っているため、T1に存在し、T2に存在しないSNOについて処理が行われます。
選択肢エ:T2には、SNAMEが存在しないため抽出できません。

問67 トランザクションAとBが、共通の資源であるテーブルaとbを表に示すように更新するとき、デッドロックとなるのはどの時点か。ここで、表中の@〜Gは処理の実行順序を示す。また、ロックはテーブルの更新直前にテーブル単位で行い、アンロックはトランザクション終了時に行うものとする。

画像(問67)を表示できません
B
C
D
E
解答
解説 順番に追いかけていきます。

@:トランザクションAが処理を開始します。
A:トランザクションBが処理を開始します。
B:トランザクションAがテーブルaにロックをかけて更新を行います。
C:トランザクションBがテーブルbにロックをかけて更新を行います。
D:トランザクションAがテーブルbにロックをかけようとしますが、既にロックが掛かっているので、解放をまちます。
E:トランザクションBがテーブルaにロックをかけようとしますが、既にロックが掛かっているので、解放をまちます。

よって、Eの段階で互いにロックの解放をまつデッドロックの状態となるといえます。

問68 DBMSのロールフォワードを説明したものはどれか。
更新前ログ情報によって、直近の整合性のとれた状態に回復する。
障害のもととなったプログラムを修正し、再実行によって回復する。
定期的に確保しておいたバックアップファイルと更新後ログ情報を使って回復する。
データベースのレコードの内容を、SQLを使って直接修正する。
解答
解説 ロールフォワードは、更新後のログを使って復旧します。ロールバックは、更新前のログを使って復旧します。下に二つの復旧方法を図示します。

ロールバック_ロールフォーワードを表示できません

問69 ストアドプロシージャの利点はどれか。
応用プログラムからネットワークを介してDBMSにアクセスする場合、両者間の通信量を減少させる。
応用プログラムからの一連の要求を一括して処理することによって、DBMS内のアクセスパスの数を減少させる。
応用プログラムからの一連の要求を一括して処理することによって、DBMS内の必要なバッファ数を減少させる。
データが格納されているディスク装置へのI/O回数を減少させる。
解答
解説 ストアドプロシージャ機能とは、データベースサーバにおいて、あらかじめ使用頻度の高い命令群をサーバ側に用意しておくことで、わずかな引数のやり取りだけでSQL文などを実行する機能のことです。通信量は減少しますがサーバの負荷など基本的に変化しません。

問70 指定した列の値としてナル(NULL)は許すが、既に存在する値の入力を禁止するSQLの字句はどれか。
CHECK
REFERENCES
RESTRICT
UNIQUE
解答
解説 データベースにおける主キー(PRIMARY KEY)とは、その行を一意に決定するために指定されるもので、重複やNULL(空値)は認められません。そして、UNIQUEも値を一意に制限するものですが、NULLは認められています。

CHECK:入力値に制限をつけます。
REFERENCES:外部キーの参照する表を指定します。
RESTRICT:外部キーの参照制約により、変更禁止を指定します。

問71 暗号方式の特徴のうち、適切なものはどれか。
共通鍵暗号方式では、送信側と受信側で異なった鍵を用いるので、鍵の機密性が高い。
共通鍵暗号方式では、通信相手ごとに異なった鍵を用いると、通信相手が多くなるに従って、鍵管理の手間が増える。
公開鍵暗号方式で通信文を暗号化して内容を秘密にした通信をするときには、復号鍵を公開することによって、鍵管理の手間を減らす。
公開鍵暗号方式では、署名に用いる鍵は公開しても構わない。
解答
解説 まず、暗号技術は下図のように、暗号鍵と復号鍵を利用します。この暗号鍵と復号鍵が同じものを利用する形式を共通鍵暗号方式、異なるものを利用する形式を公開鍵暗号方式といいます。

暗号を表示できません

共通鍵暗号方式は、暗号強度が弱く、鍵の管理が大変ですが、処理が高速という特徴があります。代表的なものにDES、AES(Rijndael)があります。
公開鍵暗号方式は、暗号強度が強く、鍵の管理が容易ですが、処理に時間がかかるという特徴があります。代表的なものに、RSA、ElGamal暗号があります。

選択肢ア:送信側と受信側で異なる鍵を利用するのは公開鍵暗号方式です。
選択肢ウ:暗号化を行う鍵は公開し暗号化を行います。暗号化されてきたデータを、秘密にしておいた復号化鍵を使い復号化します。
選択肢エ:署名に用いる鍵は秘密にしてきます。(公開するとだれでも署名ができてしまいます。)

問72 公開鍵暗号方式によるディジタル署名の手続とハッシュ値の使用方法のうち、適切なものはどれか。
受信者は、送信者の公開鍵で署名を復号してハッシュ値を取り出し、元のメッセージを変換して求めたハッシュ値と比較する。
送信者はハッシュ値を自分の公開鍵で暗号化して、元のメッセージとともに受信者に送る。
ディジタル署名を付ける元となったメッセージは、署名を変換したハッシュ値から復元できる。
元のメッセージ全体に対して公開鍵で暗号化を行い、ハッシュ値を用いて復号する。
解答
解説 ディジタル署名は、公開鍵を利用した本人確認と改ざん検出を行う技術です。以下にその概要図を示します。なお、ハッシュ値はハッシュ関数によって算出され、元となるデータがすこしでも異なるとまったく異なる値になり、ハッシュ値から元の値を極めて推測しにくいという性質をもちます。

ディジタル署名を表示できません

問73 Webビーコンを説明したものはどれか。
Webサイトからダウンロードされ、PC上で画像ファイルを消去するウイルス
Webサイトで用いるアプリケーションプログラムに潜在する誤り
悪意のあるスクリプトによってPCとWebサーバ自体の両方に被害を及ぼす不正な手口
利用者のアクセス動向などの情報を収集するためにWebページなどに埋め込まれた画像
解答
解説 Webビーコン(Webバグ)とは、HTMLソースの中に非常に小さい画像(気づかれないことを目的とするため、縦横1ビットなど)を挿入し、その画像をクライアントのブラウザが取得しに来ることで、サーバ側がクライアントのページの移動の動きを把握できるというもものです。違法性はないもののクライアントに無許可で行われるため配慮が必要です。

問74 VBScript(Visual Basic Script)で作られたコンピュータウイルスの特徴はどれか。
HTML形式の電子メール本文などに埋め込まれたスクリプトによって動作する。
感染対象が実行形式ファイルであるか文章ファイルであるかにかかわらず、すべてのOSで動作する。
実行形式ファイルではなくワープロの文書ファイルなどに感染し、関連するアプリケーションソフトを利用して動作する。
ブートセクタに感染して、通常のプロセス起動前にウイルスが呼び出されて動作する。
解答
解説 VBScriptは、VisualBasicの簡易的なものでマイクロソフト製のスクリプト言語です。Windows上やInternetExploerなどのブラウザ上で動作をします。

選択肢イ:Windows以外のOSでは基本的に動作しません。
選択肢ウ:マクロウィルスの説明です。
選択肢エ:ブートセクタ感染型ウィルスの説明です。

問75 ICカードの情報の解読や偽造に対して、物理的に情報を保護するための機能を示すものはどれか。
SECE
インターロック
インボリューション
対タンパ性
解答
解説 それぞれの用語を以下にまとめます。

SECE(Secure Electronic Commerce Environment):SET(secure electronic transaction)の規定を日本風にアレンジしたオンライン決済用のプロトコル
インターロック:一定の動作や条件を行わないと他の動作を行わないという安全設計
インボリューション:データに置換えや入れ替えを行いランダム処理を行い、安全性を高める技術
対タンパ性:なお、物理的あるいは論理的に内部の情報を読み取られることに対する耐性

問76 HTTPSを用いて実現できるものはどれか。
Webサーバ上のファイルの改ざん検知
クライアント上のウイルス検査
クライアントに対する侵入検知
電子証明によるサーバ認証
解答
解説 HTTPS (Hypertext Transfer Protocol over Secure Socket Layer) は、SSL(Secure Sockets Layer) やTLS (Transport Layer Security) を用いて、認証や暗号化を行うことによって、盗聴やなりすましによる攻撃からの保護をするものです。

問77 情報システムのリスク分析における作業@〜Dの、適切な順序はどれか。

@ 損失の分類と影響度の評価
A 対策の検討・評価と優先順位の決定
B 事故態様の関連分析と損失額予想
C 脆弱性の発見と識別
D 分析対象の理解と分析計画
C → D → A → B → @
C → D → B → A → @
D → C → A → B → @
D → C → B → @ → A
解答
解説 それぞれの工程を実施すべき順に解説していきます。

D 分析対象の理解と分析計画:どのようにリスク分析をおこなうかの大まかなとりきめと計画を立てます。
C 脆弱性の発見と識別:どこにどのような脆弱性があるのかを調べます。
B 事故態様の関連分析と損失額予想:発見された脆弱性がどのような事態を引き起こし、どれくらいの損害が出るのかを評価します。
@ 損失の分類と影響度の評価:評価された損害の分類や影響度の大きさを評価します。
A 対策の検討・評価と優先順位の決定:影響度の大きさや分類に応じて対策を行う順序や予算の割当てなどを行います。

問78 “共通フレーム98(SLCP−JCF98)”は、システム開発作業をJIS X 0160に基づいて3階層構成で定義している。この3階層を列記したものはどれか。
システム、サブシステム、プログラム
ジョブ、タスク、プロセス
プレゼンテーション、ネットワーク、セション
プロセス、アクティビティ、タスク
解答
解説 共通フレーム98はシステムのライフサイクルに関する取引で共通の枠組みを規定したものです。また、ソフトウェアを中心としたシステムの開発及び取引を可視化できる、契約者双方の共通の枠組みでもあります。また、社内の部門間も対象になっています。これらをプロセス・アクティビティ・タスク(場合によってはさらに細かいリスト)の階層に分けて定義しています。

問79 “JIS Q27001:2006(ISO/IEC 27001:2005)情報セキュリティマネジメントシステム−要求事項”に規定されているものはどれか。
ISMSが適切に運用されているかどうかを評価するために、定期的に外部監査を受けなければならない。
経営者の責任が重要であり、コミットメント、経営資源の提供、マネジメントレビューなどに関与しなければならない。
付属書の管理策は、すべて適用しなければならない。
リスクアセスメントで明らかになったすべてのリスクに対して、リスク管理策を適用しなければならない。
解答
解説 JIS Q27001は、情報セキュリティ管理のベストプラクティスの実施要項について記述されたもので、次の12の章から構成されます。

1.リスクアセスメントおよびリスク対策
2.セキュリティ基本方針
3.情報セキュリティのための組織
4.資産の管理
5.人的資源のセキュリティ
6.物理的及び環境的セキュリティ
7.通信及び運用管理
8.アクセス制御
9.情報システムの取得、開発及び保守
10.情報セキュリティインシデントの管理
11.事後継続管理
12.遵守

問80 CORBAを説明したものはどれか。
ANSIが策定したオブジェクト指向プログラミング技術の仕様
ANSIが策定した分散オブジェクト技術の仕様
OMGが策定したオブジェクト指向プログラミング技術の仕様
OMGが策定した分散オブジェクト技術の仕様
解答
解説 CORBA(Common Object Request Broker Architecture)は、異機種分散処理環境のことで、オブジェクト間でのメッセージ交換の仕様を定義しています。OMG(Object Management Group)という団体が策定しました。