HOME»データベーススペシャリスト平成21年春期»午前Ⅱ 問11
データベーススペシャリスト平成21年春期 午前Ⅱ 問11
問11
更新前情報と更新後情報をログとして利用するDBMSにおいて,ログを先に書き出すWAL(Write Ahead Log)プロトコルに従うとして,処理①~⑥を正しい順番に並べたものはどれか。
- begin transactionレコードの書出し
- データベースの実更新
- ログに更新前レコードの書出し
- ログに更新後レコードの書出し
- commitレコードの書出し
- end transactionレコードの書出し
- ①→②→③→④→⑤→⑥
- ①→③→②→④→⑥→⑤
- ①→③→②→⑤→④→⑥
- ①→③→④→②→⑤→⑥
- [出題歴]
- データベース H16春期 問36
- データベース H18春期 問37
- データベース H24春期 問17
分類
テクノロジ系 » データベース » トランザクション処理
正解
エ
解説
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レコードの書出し