更新前レコードと更新後レコードをログとして利用するDBMSにおいて、ログを先に書き出すWAL(Write Ahead Log)プロトコルに従うとして、処理@〜Eを正しい順番に並べたものはどれか。
| @ | begin transactionレコードを書き出す。 |
| A | データベースを更新する。 |
| B | ログに更新前レコードを書き出す。 |
| C | ログに更新後レコードを書き出す。 |
| D | commitレコードを書き出す。 |
| E | end transactionレコードを書き出す。 |
| ア | @→A→B→C→D→E |
| イ | @→B→A→C→E→D |
| ウ | @→B→A→D→C→E |
| エ | @→B→C→A→D→E |
答え エ
【解説】
WALではデータベースの更新を行う前にログの書き出しを行うので、処理の順番としては
| @ | begin transactionレコードを書き出す。 |
| ↓ | |
| B | ログに更新前レコードを書き出す。 |
| ↓ | |
| C | ログに更新後レコードを書き出す。 |
| ↓ | |
| A | データベースを更新する。 |
| ↓ | |
| D | commitレコードを書き出す。 |
| ↓ | |
| E | end transactionレコードを書き出す。 |
【キーワード】
・ログ先行書き込み