中小企業診断士 経営情報システム 平成29年度 H29 第9問 データベース 過去問解説


中小企業診断士1次試験の合格ノート7科目を販売中!

メルカリヤフオクラクマで販売しています。

squaresco.biz.contact@gmail.comにご連絡いただければ直接販売も可能です。

最近の記事一覧

人気の記事:


中小企業診断士合格ノートの紹介

最短合格日程|2018年証券アナリスト

証券アナリストは中古のテキストで試験対策可能!?

中小企業診断士は中古のテキストで試験対策可能!

25問解説まとめ|中小企業診断士 財務・会計 平成29年度 H29 過去問解説(証券アナリストの財務分析にも対応可能な解説です)  


以下、本文です。

第9問

業務処理のためには、多くの場合、データベース (DB) が利用される。DB をネットワーク環境下で利用する場合、さまざまな端末からトランザクション処理要求 を受け付けるため、多くの負荷が集中することもある。このような状態の中での DB の効率的な運用や障害対策などのための仕組みが用意されている。

そのような仕組みに関する記述として、最も適切なものはどれか。

ア DB 運用中に表のデータ項目の追加・削除や新たな表追加が必要となり、DB の論理構造の再構築を行う場合は、SQL 文の REBUILD 命令において必要なパ ラメータを指示して実行する。

イ DB の更新処理を行う場合は、ロックと呼ばれる排他制御が行われる。このロ ックをかける範囲をロック粒度と呼び、ロック粒度が大きいと排他制御のための 処理のオーバヘッドが大きくなる。

ウ DB の障害回復には、バックアップファイルを利用するロールフォワードとデ ータ更新状況を記録したものを利用するロールバックの仕組みがある。

エ クライアント端末から Web サーバを経由して DB サーバに対して更新作業を 行う際、まず DB サーバに対して更新作業が可能かどうかを問い合わせることを 2相のコミットメントと呼ぶ。

解説

トランザクション処理とは、1つの指示に対するシステムの動作の1かたまりの処理を言います。

ATMの具体例で説明します。

客がATMの操作で「10,000円を出金」という指示を出します。ATM内のシステムはその指示に対して、

①客の口座データから10,000を減らす

②客に現金10,000円を払い出す

という2つの動作を行います。

①と②を合わせて1つのトランザクションと呼び、①と②はどちらが欠けてもこのトランザクションは成立しません。

システムが①だけをやってしまうと客は損だし、②だけをやると銀行が損するので、②の途中で障害が発生した場合は①も取り消され、必ず①と②のかたまりで処理されるものをトランザクション処理と言います。

 

表のデータ項目の追加・削除や新たな表の追加を行う場合は、ALTER TABLEを用いるので×。

↓画像にはTABLEと付いていませんが、ALTER=ALTER TABLE、CREATE=CREATE TABLEです。テーブルとはデータベースの管理で用いられる表のことです。解説イの表がテーブルの具体例です。

SPL言語


ロックとは

1つのトランザクションがレコードを他のトランザクションに変更されないようにロックすることを言います。

レコードとは、データベースの表の行(=横)のことで、ATMの例でいうと、客の名前や残高などのデータのことです。一般的なデータベース(=リレーショナルデータベース型)は以下のような行(=横の項目=レコード)列(=縦の項目=フィールド=カラム)の表で管理されています。↓の表がTABLE(=テーブル)です。

顧客番号 住所 電話番号 氏名 口座残高
12345 東京都 080-xxx スクエアズコー ¥1,000,000
54321 千葉県 090-xxx パンダ商店 ¥2,000,000

ATMの例では、

1つのトランザクションがそのレコードの残高を変更するために、レコードをロックします。もう1つのトランザクションはそのレコードを変更したくても変更できない状態がロックです。

 

デッドロックとは、(またATMの例で説明します。)

トランザクション①客aの口座から客bの口座に5,000円振込みたいとします。

トランザクション②は反対に客bから客aの口座に3,000円振込みたいとします。

・2つのトランザクションが同時に行われると、デッドロックが発生します。

トランザクション①客aの口座から5,000円減らし、客bの口座を5,000円増やすためにまず客aレコードをロックします。

・同時にトランザクション②客bの口座から3,000円減らし、客aの口座を3,000円増やすためにまず客bレコードをロックします。

トランザクション①客bの口座を増やしたいのにロックが掛かっていて変更できません。同様にトランザクション②客aの口座を増やしたいのにロックが掛かっていて変更できません

・2つのトランザクションが、互いに相手の所有するロックが解除されるのを待機して処理が進まなくなる状態をデッドロックと言います。デッドロックは、必ずしもトランザクションが関係しなくても、複数の処理が同時に実行されている状態では発生する可能性があります。ただし、トランザクションがあるとロックの期間が長くなりがちなため、発生しやすいと言えます。

・いったんデッドロックに陥ったトランザクションは永久に待ち状態になってしまい、外部からの介入なしには抜け出すことができません。

 

ロック粒度が大きい(=粗い)とは、ロックするデータの一つ一つが大きく、数が少ないということです。

 

オーバーヘッドとは、ロックを行うためのメモリ領域やCPU負担など、データ更新という本来の目的ではない、必要だけど余計な処理のことです。オーバーヘッドは違う問題でも出る単語なので覚えてください。

よって、ロック粒度が大きい方がロック数が少なくなり、オーバーヘッドは小さくなるので×。

だいぶ長くなりましたね(^^;;

 

ウ システムの障害時に、データベースの状態を矛盾のない最新の状態に復帰させる手段として、ロールフォワードロールバックがあります。

ロールフォワードとは、

ハードウェアの障害(ハードディスクそのものの破損など)が起きた時にデータベースを前回のバックアップ時点の状態に復旧してから、ログファイルの更新後情報を用いて、障害発生前に完了したトランザクションによって更新された分を更新します。

ログファイルとは、

データベースシステムが実行した更新履歴を記録するファイルです。

・例えば、Dドライブの写真を編集している最中に、Dドライブが故障し全データが消えてしまったとします。

・直近のDドライブのバックアップと写真編集の途中までのログファイルがFドライブに保存されている場合、Dドライブを交換すれば、バックアップから更新前の状態に戻し、ログファイルによって写真編集の途中の状態まで戻す手段がロールフォワードです。

・余談ですが、ログファイルもDドライブに保存されていたらそれも消えてしまうので、別の媒体(Fドライブ等)に保存する必要があります。

ロールバックとは、

障害の発生(プログラムの異常終了など)時点で処理中だったトランザクションによる更新を、ログファイルの更新前情報を使って取り消し、データベースを処理前の状態に戻します。

写真編集の例だと、今回はハードディスクが壊れたわけではないので、「写真編集をする前の写真データまで戻すだけ」の作業をするのがロールバックです。

選択肢はごく端的に説明していますが正しい記述です。

 

エ 

2相のコミットメントとは、

分散データベースで、複数のデータベースを同時に更新する場合に、一方のデータベースに障害が発生してもデータベース間の整合性を保つための制御方法だそうです。

聞いたことが無いので×で良いでしょう。テキストにも載っていません。 

解答

間違っていました。正直、選択肢ア・イ・エについては聞いたことがなかったので×にすれば良かったのですが、ウの記述が簡単すぎてひっかけだと勘ぐってしまい、前半の記述は正しいイを選んでしましました。

ロールバックロールフォワードについての知識があいまいだったことが原因ですね。この記事を書いていてしっかり理解することが出来ました。



記事中の画像は試験勉強の際に作成した自作ノートの関連する部分です。

中小企業診断士合格ノートのサンプルはメルカリヤフオク

証券アナリスト合格ノートのサンプルはメルカリヤフオク

無料でダウンロードできますので、是非ご確認ください。

分からない単語は、メニューの検索に入力することで過去記事から全文検索ができます。

最後まで読んでいただきましてありがとうございました。

「Squares&Co.」「スクエアズコー」「パンダ商店」

コメントを残す

メールアドレスが公開されることはありません。