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




このページは

ソフ開

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

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

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



問61 A,B,C,D,Eは、ある関係Rの属性集合の部分集合であり、関係従属A→BC、CD→Eが成り立つ。これらの関数従属から導かれる関数従属はどれか。ここで、XYはXとYの和集合を示す。
A→E
AD→E
C→E
D→E
解答
解説 まず、『→』は、左式が成り立っているならば、右式も成り立つという意味の演算です。含意(がんい)やならばと読みます。

AからEを導くためには、A→BCより、AD→BCD、AD→Eとなります。

問62 属性がn個ある関係の異なる射影は幾つあるか。ここで、射影の個数には、元の関係と同じ結果となる射影、及び全く属性を含まない射影を含めるものとする。
2n
n
log2
解答
解説 要素が2つと3つの場合を例に考えます。

2:()、(A)、(B)、(A,B)=4
3:()、(A)、(B)、(C)、(A,B)、(A,C)、(B,C)、(A,B,C)=8

数学的に考えるならば、
n個から0個を選ぶ = n0
n個から1個を選ぶ = n0
 ・
 ・
 ・
n個からn個を選ぶ = n
の組合せの和と考えることができます。

また、状態がある・ないだけなので、選ばれた時を1、選ばれていない時を0とすれば2進数のように見ることもでき、n桁の状態数は22となることがわかります。

問63 受注システムについて、図のようなデータモデルから“顧客”表、“注文”表、“商品”表を作成した。これらの表に関する記述のうち、適切なものはどれか。ここで1 *は1対多の関係を示し、線上の名称はロール名である。また、表定義中の下線のうち実線は主キーを、破線は外部キーを表す。

画像(問63)を表示できません
ある顧客は、自分が注文主でかつ届け先であることができる。
顧客は、注文主顧客と届け先顧客のどちらか一方に分類される。
一つの注文に複数の商品があってもよい。
一つの注文に複数の注文主と届け先があってもよい。
解答
解説 それぞれの選択肢を順に評価していきます。

選択肢ア:注文先と、届出先は互いに制約がないので、注文主かつ届出先になることはできます。
選択肢イ:注文先と、届出先は互いに制約がないので、注文主顧客かつ届出先顧客の両方になることができます。
選択肢ウ:注文と商品の関係は多対1なので、注文に対して、商品は1つです。
選択肢エ:顧客と注文の関係は1対多なので、注文に対して、顧客(注文主、届け先)は1つです。

問64 ビューGOODMAKERを用いて検索する次のSELECT文と同等な表を導出するSQL文はどれか。

画像(問64)を表示できません
画像(問64ans)を表示できません
解答
解説 まず、前半のビューを作る部分は、GOODMAKERというビューをつくり、その項目は、MNO、STATUS、AREAであることを宣言しています。そして、この項目はMAKER表のMNO、STATUS、AREAに対応しています。そして、条件としてSTATUSが>20のものだけを取り出してビューを作成しています。

つぎに、後半のSELECT文は、今作ったGOODMAKERからAREAがTOKYOでないものを取り出しています。

つまり、まとめるとMAKER表のSTATUS>20でAREAがTOKYOでないものを取り出しています。

選択肢ア:GOODMAKER表を作っていないので、FROM句で指定するのは間違いです。
選択肢イ:ORで条件がつながられているので間違いです。
選択肢ウ:ORでじょうけんがつながれており、AREAがTOKYOのものを取り出しているので間違いです。

問65 次のSQL文は、和、差、射影、選択の演算関係のうち、どの関係の組合せで表現されるか。ここで、下線部は主キーを表す。

画像(問65)を表示できません
差、選択、射影
差、直積、選択
直積、選択、射影
和、直積、射影
解答
解説 まず、FROM句で納品、顧客の2つの表のすべての組合せを生成します。これは直積に相当します。つぎに、WHERE句で、特定の行を取り出しています。(行を取り出す作業を選択といいます。)最後、SELECT文で、特定の列を取り出しています。(列を取り出す作業を射影といいます)

よって、直積、選択、射影が行われているといえます。

問66 “科目”表と“実習”表に対して、次のSQL文を実行した結果、導出される表はどれか。

画像(問66)を表示できません
画像(問66ans)を表示できません
解答
解説 UNIONとは、複数の表を結合するために用いられる演算です。

上の表では、実習表にある科目番号が出力されるので、科目番号2と科目番号5が出力されます。
下の表では、科目表において単位数が5以上の科目番号が出力されるので、科目番号1、科目番号2、科目番号3が出力されます。

UNIONは和集合をなので、重複は1つのものとしてカウントされます。

問67 クライアントサーバシステムにおけるストアドプロシジャの記述として、誤っているものはどれか。
アプリケーションから一つずつSQL文を送信する必要がなくなる。
クライアント側のCALL文によって実行される
サーバとクライアントの間での通信トラフィックを軽減することができる。
データの変更を行うときに、あらかじめDBMSに定義しておいた処理を自動的に起動・実行するものである。
解答
解説 ストアドプロシージャ機能とは、データベースサーバにおいて、あらかじめ使用頻度の高い命令群をサーバ側に用意しておくことで、わずかな引数のやり取りだけでSQL文などを実行する機能のことですこれによりクライアント・サーバ間のトラフィックを軽減することができます。ただし、処理量は変わらないのでサーバの負荷は変化しません。

問68 分散トランザクション処理で利用される2相コミットプロトコルでは、コミット処理を開始する調停者(coordinator)と調停者からの指示を受信してから必要なアクションを開始する参加者(participant)がいる。この2相コミットプロトコルに関する記述のうち、適切なものはどれか。
参加者は、フェーズ1で調停者にコミット了承の応答を返してしまえば、フェーズ2のコミット要求を受信しなくても、ローカルにコミット処理が進められる。
調停者に障害が発生するポイントによっては、その回復処理が終わらない限り、参加者全員がコミットもロールバックも行えない事態が起こる。
一つの分散トランザクションに複数の調停者及び参加者が存在し得る。例えば、5個のシステム(プログラム)が関与している場合、調停者の数が2、参加者の数が3となり得る。
フェーズ1で返答のない参加者が存在しても、調停者は強制的にそのトランザクションをコミットすることができる。
解答
解説 2相コミットは、1つの調停者が複数の参加者の間に入り同期をとることで、分散しているトランザクションの一貫性をとるアルゴリズムです。フェーズ1では、コミットができるかの要求をおこない、すべてが可能であるという返答が帰ってきた場合のみ、コミット要求を、それ以外はロールバック要求を各参加者に要求します。例を下に図示します。しかし、フェーズ1終了時に調停者に障害が発生すると、永久的に参加者は処理ができない状態が発生してしまいます。

2相コミットを表示できません

問69 一つの表に大量のデータを格納するとき、並列処理のために異なったディスクにデータを分割格納することがある。このような方式のうち、キーレンジ分割方式の説明はどれか。
主キーと外部キーの参照関係を保持し、関数従属性に従って異なった表に分割格納する。
データの発生した順に格納するディスクを変え、ディスクごとのデータ量が均等になるように分割格納する。
分割に使用するキーの値にハッシュ関数を適用し、その値に割り当てられたディスクに分割格納する。
分割に使用するキー値の値をあらかじめ決めておき、その値に割り当てられたディスクに分割格納する。
解答
解説 それぞれの分散DBのデータ格納に関する用語を以下にまとめます。

選択肢ア:正規化の説明です。
選択肢イ:格納順分割方式の説明です。
選択肢ウ:ハッシュ分割方式の説明です。
選択肢エ:キーレンジ分割方式の説明です。

問70 主キーをもつある行を削除すると、それを参照している外部キーへ既定値を自動的に設定するために指定するSQLの語句はどれか。
CASCADE
CHECK
RESTRICT
SET DEFAULT
解答
解説 それぞれのSQL語句を以下にまとめます。

CASCADE:主キーを持つ行を削除した場合に、キーが参照する外部キーも同時に削除する指定ができる。
CHECK:入力値の範囲のチェックを指定できる。
RESTRICT:外部キーを参照していない場合のみ削除可能を指定できる。
SET DEFAULT:主キーを持つ行を削除した場合に、キーが参照する外部キーへ既定値の設定ができる。

問71 100人の送受信者が共通鍵暗号方式で、それぞれ秘密に通信を行うときに必要な共通鍵の総数は幾らか。
200
4,950
9,900
10,000
解答
解説 鍵の数は人数×1人が持つかぎの数となります。人数は100人で、1人が持つかぎの数は、自分以外の人数全員となるので、100−1で99個となります。よって、100×99=9900となります。しかし、A→BとB→Aは同じかぎなので、その半分となり、9900/2で4950となります。

問72 社内のセキュリティポリシで、利用者の事故に備えて秘密鍵を復元できること。及びセキュリティ管理者の不正防止のための仕組みを確立することが決められている。電子メールで公開鍵暗号方式を使用し、鍵の生成はセキュリティ部門が一括して行っている場合、秘密鍵の適切な保管方法はどれか。
1人のセキュリティ管理者が、秘密鍵を暗号化して保管する。
暗号化された秘密鍵の一つ一つを分割し、複数のセキュリティ管理者が分担して保管する。
セキュリティ部門には、秘密鍵を一切残さず、利用者本人だけが保管する。
秘密鍵の一覧表を作成して、セキュリティ部門内に限り参照できるように保管する。
解答
解説 セキュリティはセキュリティの確保と利便性の適度な両立が求められます。選択肢アやエのような場合は、管理者・部門所属者の不正使用が簡単に出来てしまいます。選択肢ウのような場合は、一度なくしてしまうとアクセスできなくなる可能性があります。

問73 公開鍵基盤とハッシュ関数を利用したメッセージ認証の手法はどれか。
受信者は、送信者の公開鍵とハッシュ関数を用いてハッシュ値を復号し、メッセージを得る。
受信者は、ハッシュ関数を用いてメッセージからハッシュ値を生成し、送信者の公開鍵で復号したハッシュ値と比較する。
送信者は、自分の公開鍵とハッシュ関数を用いてメッセージからハッシュ値を生成し、メッセージとともに送信する。
送信者は、ハッシュ関数を用いて送信者の秘密鍵のハッシュ値を生成し、メッセージとともに送信する。
解答
解説 公開鍵暗号基盤(PKI)とハッシュ関数を使ったメッセージダイジェスト認証について以下に図示します。

MDを表示できません

問74 SMTP−AUTH認証はどれか。
PASSコマンドの引数で用いられるパスワードをハッシュ値にして、その値でユーザ認証を行う。
SMTPサーバへ電子メールを送信する前に電子メールを受信し、そのパスワード認証が行われたクライアントのIPアドレスに対して、一定時間だけ電子メールの送信を許可する。
クライアントがSMTPサーバにアクセスしたときにユーザ認証を行い、許可されたユーザだけから電子メールを受け付ける。
サーバはCAの公開鍵証明書をもち、クライアントから送信されたCAの署名付きクライアント証明書の妥当性を確認する。
解答
解説 一般的にメールの送信を行うプロトコルであるSMTPには認証機能がなく、広告メールなどの踏み台にされることがしばしばありました。そこで、一度認証機能のあるPOP3によってメールを受信してから一定時間メールの送信を許可する『POP before SMTP』(選択肢イ)ことで対処していましたが、一定時間で認証の効力が切れてしまうため、SMTPに認証機能を追加する必要があり、これがSMTP−AUTH認証になります。サーバ、クライアント両方が対応している必要があります。

問75 コンピュータウイルスの検出、機能の解明、又は種類の特定をする手法について、適切な記述はどれか。
暗号化された文章中のマクロウイルスを検出するにはパターンマッチング方式が有効である。
逆アセンブルは、バイナリタイプの新種ウイルスの機能を解明するのに有効な手法である。
不正な動作を識別してウイルスを検知する方式は、ウイルス名を特定するのに最も有効である。
ワームは既存のファイルに感染するタイプのウイルスであり、その感染の有無の検出にはファイルの大きさの変化を調べるのが有効である。
解答
解説 それぞれの選択肢を評価していきます。

選択肢ア:パターンマッチングとは、ウィルスを定義したファイルと対象のファイルを比較することで、ウィルスを発見する方法です。しかし、既存のウィルスであればほとんど発見できますが、暗号化や亜種には弱いという欠点があります。
選択肢イ:逆アセンブルとは、リバースエンジニアリングの一種で、バイナリ(2進数)データをアセンブラ言語(ニーモニック)に変換する行為です。これによりウイルスの挙動を解明することができます。
選択肢ウ:おかしな動作を監視することをヒューリスティックスキャンと言いますが、ウィルスは似たような動作をするものも多く、動作からウイルス(あるいはウイルス名)を判断するの難しいといえます。(なお、ウィルス名は会社などによって異なる場合が多いです)
選択肢エ:ワームはファイルに感染するのではなく、自己増殖をするのでこれも誤りです。

問76 クロスサイトスクリプティングによる攻撃へのセキュリティ対策はどれか。
OSのセキュリティパッチを適用することによって、Webサーバへの侵入を防止する。
Webアプリケーションで、クライアントに入力データを再表示する場合、情報内のスクリプトを無効にする処理を行う。
WebサーバにSNMPプログラムを常駐させることによって、攻撃を検知する。
許容範囲を超えた大きさのデータの書込みを禁止し、Webサーバへの侵入を防止する。
解答
解説 クロスサイトスクリプティングとは、代表的なセキュリティホールの一種で、“危険な文字”を除去する処理をしない場合に行います。その仕組みを以下に説明します。

@クライアントに悪意のあるページを閲覧させる
Aそのページからユーザのブラウザを経由して攻撃するサイトへスクリプトを送信する
B攻撃されたサイトでは、そのスクリプトが有害化し、情報漏えいやファイルの破壊が起きる

これを防ぐには、サニタイジング(無害化)をする必要があり、たとえば、『<』を『&lt』のように実体参照をするようにするのが一般的です。

問77 ISMSにおけるリスク分析の方法の一つであるベースラインアプローチはどれか。
公表されている基準などに基づいて一定のセキュリティレベルを設定し、実施している管理策とのギャップ分析を行った上で、リスクを評価する。
情報資産を洗い出し、それぞれの情報資産に対して資産価値、脅威、脆弱性及びセキュリティ要件を識別し、リスクを評価する。
複数のリスク分析方法の長所を生かして組み合わせ、作業効率や分類精度の向上を図る。
リスク分析を行う組織や担当者の判断によって、リスクを評価する。
解答
解説 ベースラインアプローチとは、まず確保すべきセキュリティレベルを設定し、既存のガイドラインなどを基にセキュリティレベルの到達度合を調査していくアプローチ法です。高い技術が要らず、短時間でリスクを網羅できますが、未知のリスクや業種特有のリスクに対応できないといった欠点もあります。

問78 共通フレーム98(SLCP−JCF98)が規定しているものはどれか。
開発プロセスでは、ソフトウェアライフサイクルを構築する作業の時間及び順序を規定している。
顧客と開発ベンダの受発注契約にかかわる取引以外に、社内の部門間取引も対象に規定している。
ハードウェアを含めた業務システムの開発プロセスではなく、ソフトウェア開発のプロセスを対象に規定している。
プロセスのくくりとプロセス自体をISO/IEC12297(JIS X 0160)と同一に規定している。
解答
解説 共通フレーム98はシステムのライフサイクルに関する取引で共通の枠組みを規定したものです。また、ソフトウェアを中心としたシステムの開発及び取引を可視化できる、契約者双方の共通の枠組みでもあります。また、社内の部門間も対象になっています。

問79 米国で運用されたTCSECや欧州政府調達用のITSECを統合して、標準化が進められたCC(Common Criteria)の内容はどれか。
暗号アルゴリズムの標準
情報技術に関するセキュリティの評価基準
情報セキュリティ管理の実施基準
セキュリティ管理のプロトコルの標準
解答
解説 CC(Common Criteria:コモンクライテリア)は、コンピュータセキュリティのための国際規格であり、ISO/IEC15408でもあります。情報技術セキュリティの評価基準、情報技術セキュリティ評価基準、ITセキュリティ評価基準などと呼ばれます。

問80 SAML(Security Assertion Markup Language)について説明したものはどれか。
Webサービスに関する情報を広く公開し、それらが提供する機能などを検索可能にするための仕組みを定めたもの
権限のない利用者による傍受、読取り、改ざんから電子メールを保護して送信するためのプロトコルを定めたもの
ディジタル署名に使われる鍵情報を効率よく管理するためのWebサービスプロトコルを定めたもの
認証情報に加え、属性情報とアクセス制御情報を異なるドメインに伝達するためのWebサービスプロトコルを定めたもの
解答
解説 SAML(Security Assertion Markup Language)は、OASISという標準化団体により策定されたもので、AuthXMLとS2MLという2つの規格を統合したものです。XML仕様で、異なるサーバ間でも安全にIDやパスワードをやり取りできるようにしたものです。これによりシングルサインオンなどを実現できます。認証情報の交換にはSAMLプロトコルが使用され、HTTPやSOAPにより送受信されます。