平成18年 問36
平成18年 問36
DBMSを障害発生後に再立ち上げするとき、前進復帰(ロールフォワード)すべきトランザクション
と後退復帰(ロールバック)すべきトランザクションの組合せとして、適切なものはどれか。ここで、
トランザクションの中で実行される処理内容は次の通りとする。
____________________________________________
・前進復帰と後退復帰
障害発生時に実行中のトランザクションは後退復帰(ロールバック)するのが原則。
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円~ 楽天スーパーポイントが毎月貯まる!

平成18年 問34
平成18年 問34
トランザクションの同時実行制御である2相ロッキングプロトコルに関する記述として、適切なものは
どれか。
(ア)共有ロック、占有ロックの概念はない。
(イ)異なるテーブルであれば、すべてのロックが完了する前にアンロックを行ってもよい。
(ウ)デッドロックが発生することがある。
(エ)読込みを行うトランザクションは、ロックする必要がない。
____________________________________________
・2相ロッキング方式
2相ロッキング方式とは、あるトランザクションでデータ操作を行う前に2つのフェーズに
分けてロック操作をする方法。
第1相目 成長フェーズ
他資源に対して、一斉にロックをかける(データ操作)
第2相目 縮退フェーズ
トランザクションがコミットするときにロックを一斉に解く
ロックがかかっている資源に対して、他のトランザクションからロックをかけようとすると、
そのトランザクションはロックが解放されるまで待つ。従って、デッドロックが起こる可能性
がある。
よって、正解は(ウ)
(ア)共有ロック、占有ロックの概念はある。
(イ)2相ロッキング方式では、すべてのロックが完了する前にアンロックを行っては行けない。
(エ)読込みを行うトランザクションでは、対象のデータに共有ロックをかける。
答え(ウ)
売れ筋ランキングは1時間ごとに更新中!
厳選された超一流ホテル・旅館のみをご紹介する宿泊予約サイトはこちら
ゴルフ予約は楽天GORA!初予約100ポイント!
楽天市場の総合ダウンロード販売サイト。
お腹がすいた~【出前店多数!】の楽天デリバリー!
ウイルスバスター2009 + 保険&PCサポート

