パソコンユーザの悪戦苦闘生活 -15ページ目

平成18年 問36

平成18年 問36



 DBMSを障害発生後に再立ち上げするとき、前進復帰(ロールフォワード)すべきトランザクション
と後退復帰(ロールバック)すべきトランザクションの組合せとして、適切なものはどれか。ここで、
トランザクションの中で実行される処理内容は次の通りとする。


D18-36-1

D18-36-2


____________________________________________


・前進復帰と後退復帰

   障害発生時に実行中のトランザクションは後退復帰(ロールバック)するのが原則。
  T3,T4,T6がそれにあたるが、T3、T4もReadなのでデータの更新がなく
  ロールバックの対象外になる。つまり、ロールバックが必要なのはT6のみ。

   またチェックポイント通過後、障害発生時までにコミットされたトランザクションについては、
  前進復帰(ロールフォワード)する。T2,T5がそれえに当たる。また、T1はチェックポイント
  到着前にコミットされ、データの更新が終了しているので、ロールバック、ロールフォワード
  いずれの対象にも該当しない。


よって正解は、(ア)。

答え(ア)





楽天ブックスは品揃え120万点以上!

業界トップクラス!楽天GORAでゴルフ予約

モニター登録で全員に50ptプレゼント

楽天トラベル

メールでプレゼントが贈れる!送料無料の楽天ギフト

デル株式会社


平成18年 問35

平成18年 問35



 ページ単位で行うDNMSにおいて、T表に対する処理①と②をロランザクションモード
READ COMMITTEDで並行処理した場合の事象に関して、誤っているものはどれか。


 ここで、T表には三つの列(A,B、C)があり、列Aが主キーである。
 また、①、②ともにSQL文の直後にコミット文が付属しているものとする。


①のSQL文  SELECT SUM(B) , SUM(C) INTO :HSB,:HSC FROM T

②のSQL文 UPDATET SET B=B+:HB, C=C+:HC WHERE A=:HA



(ア)①と②の間でデッドロックが発生する場合がある。



(イ)①の実行中に②を実行すると、②が先に終了する場合がある。



(ウ)②のCOMMIT実行前の結果が①に反映されることはない。



(エ)②を連続して実行しているときに①を実行すると、①より前に終了した②の結果が
   ①に反映される場合がある。



___________________________________________

・READ COMMITTED


READ COMMITTEDのモードでは、他のトランザクションが解放しないデータを読まない。
 このモードでは、ノンチピータブルリードおよびファントムリードが発生する。

  ①のSQL文は、SELECT文なので共有ロックを使用する。ロックをかける時間は
 READ COMMITTEDモードのための短時間。

  ②のSQL文は、UPDATE文なので占有ロックを使用する。WHERE句で条件が
 指定されているので、条件に合致した行のページにロックをかける。

  READ COMMITTEDモードの場合、占有ロックの期間はトランザクション終了までの長期間
 となる。



(ア)ただしい。①のSELECT文で共有ロックがかかっている場合、②のUPDATE文は、
   該当ページに占有ロックをかけることができず、ロック解放待ち状態になる。また②
   のUPDATE文によって占有ロックがかかっている場合は、①のSELECT文で
   共有ロックをかけることができず、ロック解放待ち状態となる。このような状態では
   デッドロックは発生しない。



(イ)①のSQL文の実行が長期間にわたったとしても、共有ロックをかけるのは該当データ
   ページの読み取りの一瞬だけのため、あとから開始した②のSQL文の実行が先に終了
   することは考えられる。



(ウ)READ COMMITTEDモードでは、トランザクションで変更途中のデータは他のトランザクション
   からはみえない。従って、反映されない。



(エ)READ COMMITTEDモードでは、ノンリピータブルリードが発生する。①が再読み込みをする
   と、②によって更新された行を読み込むため。従って、この説明は正しい。


 従って、正解は(ア)


答え(ア)





楽天トラベル

【楽天ギフト】あなただけのギフトカタログを作って贈ろう!

【利用料0円!】欲しいあの品、安く買うなら『楽天オークション』

楽天カードで2000ptゲット

【楽天ブロードバンド】月額2000円~ 楽天スーパーポイントが毎月貯まる!

Apple Store(Japan)


平成18年 問34

平成18年 問34



 トランザクションの同時実行制御である2相ロッキングプロトコルに関する記述として、適切なものは
どれか。



(ア)共有ロック、占有ロックの概念はない。



(イ)異なるテーブルであれば、すべてのロックが完了する前にアンロックを行ってもよい。



(ウ)デッドロックが発生することがある。



(エ)読込みを行うトランザクションは、ロックする必要がない。



____________________________________________



・2相ロッキング方式


 2相ロッキング方式とは、あるトランザクションでデータ操作を行う前に2つのフェーズに
分けてロック操作をする方法。



 第1相目 成長フェーズ
  他資源に対して、一斉にロックをかける(データ操作)

 第2相目 縮退フェーズ
  トランザクションがコミットするときにロックを一斉に解く



 ロックがかかっている資源に対して、他のトランザクションからロックをかけようとすると、
 そのトランザクションはロックが解放されるまで待つ。従って、デッドロックが起こる可能性
 がある。
 
  よって、正解は(ウ)


(ア)共有ロック、占有ロックの概念はある。



(イ)2相ロッキング方式では、すべてのロックが完了する前にアンロックを行っては行けない。



(エ)読込みを行うトランザクションでは、対象のデータに共有ロックをかける。



答え(ウ)





売れ筋ランキングは1時間ごとに更新中!

厳選された超一流ホテル・旅館のみをご紹介する宿泊予約サイトはこちら

ゴルフ予約は楽天GORA!初予約100ポイント!

楽天市場の総合ダウンロード販売サイト。

お腹がすいた~【出前店多数!】の楽天デリバリー!

ウイルスバスター2009 + 保険&PCサポート