実体験から始める情報講座

基本情報技術者講座

★ 猫本 6-04 トランザクション処理(その3) ★

基本情報技術者 平成29年度春期 問28

分散データベースシステムにおいて,一連のトランザクション処理を行う複数サイトに更新処理が確定可能かどうかを問い合わせ,すべてのサイトが確定可能である場合,更新処理を確定する方式はどれか。

ア  2相コミット
イ  排他制御
ウ  ロールバック
エ  ロールフォワード

解説

ア  分散データベースシステムにおいて,一連のトランザクション処理を行う複数サイトに更新処理が確定可能かどうかを問い合わせ,すべてのサイトが確定可能である場合,更新処理を確定する方式(正解)
イ  複数のプログラムが同一のデータを同時にアクセスしたときに,データの不整合が生じないようにする。(IP01.2.64)
ウ  更新前ジャーナルを用いて,トランザクション開始直前の状態にまでデータを復旧させる。(FE22.2.56)
エ  更新後ジャーナルを用いて、トランザクション開始後の障害直前の状態にまでデータを復旧させる。(FE22.2.56)

解答

基本情報技術者 令和元年度秋期 問28

一つのトランザクションはトランザクションを開始した後,五つの状態(アクティブ,アボート処理中,アボート済,コミット処理中,コミット済)を取り得るものとする。このとき,取ることのない状態遷移はどれか。

解説

アクティブ(実行中),コミット(確定),アボード(強制終了)


ア  アボード処理中(強制終了処理中)→アボード済(強制終了済)はあり得る
イ  アボード処理中(強制終了処理中)→コミット処理中(確定処理中)はあり得ない。強制終了処理後に,処理を確定させてはいけない(なかったことにする)。(正解)
ウ  コミット処理中(確定処理中)→アボード処理中(強制終了中)はあり得る。コミット処理中に,何らかの理由で処理を確定できなかったので強制終了させる。
エ  コミット処理中(確定処理中)→コミット済(確定済)はあり得る。

解答

基本情報技術者 令和元年度秋期 問29

2相ロッキングプロトコルに従ってロックを獲得するトランザクションA,Bを図のように同時実行した場合に, デッドロックが発生しないデータ処理順序はどれか。ここで,readとupdateの位置は,アプリケーションプログラムでの命令発行時点を表す。 また,データWへのreadは共有ロックを要求し,データX,Y,Zへのupdateは各データへの専有ロックを要求する。


解説

デットロック: 複数のトランザクションが,互いに相手のロックしている資源を要求して待ち状態となり,実行できなくなること(FE23.2.34)
2相ロッキングプロトコル: 排他制御を行うために,データを操作する前にロックをかけ(第1相),データ操作後にロックを解除する(第2相)。
共有ロック: 共有ロックされているデータに対して,他のトランザクションはそのデータを読み込むことはできるが,書き込むことができない。
専有ロック: 専有ロックされているデータに対して,他のトランザクションはそのデータを読み込むことも書き込むこともできない。

よって,ウである。

解答