HOME»データベーススペシャリスト平成24年春期»午前Ⅱ 問17
データベーススペシャリスト平成24年春期 午前Ⅱ 問17
問17
更新前情報と更新後情報をログとして利用するDBMSにおいて,ログを先に書き出すWAL(Write Ahead Log)プロトコルに従うとして,処理①~⑥を正しい順番に並べたものはどれか。
- begin transactionレコードを書き出す。
- データベースを更新する。
- ログに更新前レコードを書き出す。
- ログに更新後レコードを書き出す。
- commitレコードを書き出す。
- end transactionレコードを書き出す。
- ①→②→③→④→⑤→⑥
- ①→③→②→④→⑥→⑤
- ①→③→②→⑤→④→⑥
- ①→③→④→②→⑤→⑥
- [出題歴]
- データベース H16春期 問36
- データベース H18春期 問37
- データベース H21春期 問11
分類
テクノロジ系 » データベース » トランザクション処理
正解
エ
解説
WAL(Write Ahead Log)プロトコルは、トランザクションがログを安定記憶に書き出すタイミングについての取り決めで、"Write Ahead Log"(まずログを書け)という意味のとおり、実際の操作に先行してログの即時書き出しを求めるものです。
WALプロトコルの動作は次の2点に要約されます。
正常なトランザクションは BEGIN TRANSACTION によって開始され、COMMIT を経て END TRANSACTION で終了しますが、WALプロトコルに従えばトランザクションの開始直後に更新前ログを書出し、COMMIT直前に更新後ログを書き出すことになります。したがって正しい順序は「エ」です。
①begin transactionレコードの書出し
③ログに更新前レコードの書出し
④ログに更新後レコードの書出し
②データベースの実更新
⑤commitレコードの書出し
⑥end transactionレコードの書出し
WALプロトコルの動作は次の2点に要約されます。
- データベースの更新は、まずそれをログを書き出してから行う(更新前ログ)
- トランザクションはコミットを行う前に、該当する全てのデータベース更新情報をログを書き出す(更新後ログ)
正常なトランザクションは BEGIN TRANSACTION によって開始され、COMMIT を経て END TRANSACTION で終了しますが、WALプロトコルに従えばトランザクションの開始直後に更新前ログを書出し、COMMIT直前に更新後ログを書き出すことになります。したがって正しい順序は「エ」です。
①begin transactionレコードの書出し
③ログに更新前レコードの書出し
④ログに更新後レコードの書出し
②データベースの実更新
⑤commitレコードの書出し
⑥end transactionレコードの書出し