スゴ技

平成23年度 特別 基本情報技術者試験 【問3】(その1)

Blog:IT・情報処理BLOG |

ソフトⅡコース担当 ブログのおにーさまこと高橋です。

今回は、平成23年度特別試験基本情報技術者試験午後問3、データベースの問題を考えたいと思います。

設問1

排他制御を行わなかった場合、どのようになるかを考える問題です。排他制御を行わないということは、ロックをかけないということで、データを自由に読み書きできることになります。トランザクションは並行して行われる可能性があるので、あるトランザクションが更新を行っている途中に、別のトランザクションが同じデータを参照、更新する可能性がでてきます。
もっとも単純に考えて、各トランザクションの3つの手順が交互に実行されると考えることにします。この場合、T1とT2のどちらから開始されるかによって2つのパターンが考えられます。

T1から開始した場合、

T1の値 T1 DBの値 T2 T2の値
50 (1)データを読み込む 50
50 50 (1)データを読み込む 50
60 (2)+10する 50 50
60 50 (2)-5する 45
60 (3)データを書き込む 60 45
60 45 (3)データを書き込む 45

T2から開始した場合、

T1の値 T1 DBの値 T2 T2の値
50 (1)データを読み込む 50
50 (1)データを読み込む 50 50
50 50 (2)-5する 45
60 (2)+10する 50 45
60 45 (3)データを書き込む 45
60 (3)データを書き込む 60 45

このように、排他制御が行われないと両トランザクション終了時には45または60になる可能性があります。空欄a、bには順不同でイ、エが入ります。

設問2

問題より、入荷、出荷の処理には排他ロック、参照の処理には共有ロックをかけます。問題の図2より、在庫数データへのロック要求の順にトランザクションを並べると次のようになります。

トランザクション 処理 ロックの種類
T3 参照 共有ロック
T6 参照 共有ロック
T4 出荷 排他ロック
T5 入荷 排他ロック
  1. T3が在庫数データに共有ロックをかけます。共有ロックがかかっている時に、別の共有ロックが要求された時は受け付けられ処理が続きます。排他ロックが要求された時は受け付けられず待ち状態になります。
  2. T6は共有ロックなのでそのまま処理が続きます。
  3. T4は排他ロックなので、共有ロックが解除されるまで待ち状態になります。
  4. 同様に、T5も待ち状態になります。

以上より、解答はウです。

設問3

ロックしている時間を短くするには必要な時だけロックをかけるようにします。すなわち、使う直前にロックし、使い終わった(以降使わない)直後に解除するようにします。
空欄cはイ、空欄dはエになります。

2011年(平成23年度)特別の解説

Date:

神戸電子の
IT・情報処理学科
についてもっと知りたい!

Webアプリケーション等のシステム管理、設計、開発が行える総合的なITエンジニアを育成する学科です。

学科紹介を見る (神戸電子サイト)

学科紹介イメージ
Info神戸電子からのお知らせ

Tagタグ

Teamライターチーム紹介

神戸電子オフィシャルSNS

オープンキャンパスなどの
誰でも参加OKの楽しいイベント
やブログの最新記事などお届けします!

ページの上へ移動