データベースの基礎

トランザクションT1〜T5があり、障害が発生する前にチェックポイントを1回取った。T1はチェックポイントの前に開始してコミットした。T2とT3はチェックポイントの前に開始し、T2はチェックポイントのあと障害の前にコミットし、T3は障害の時点でコミットしていなかった。T4とT5はチェックポイントのあとに開始し、T4は障害の前にコミットし、T5はコミットしていなかった。障害のあとの回復で、ログを使ってロールフォワードする必要があるトランザクションはどれか。

  1. AT3とT5
  2. BT1、T2、T4
  3. CT2とT4
答えと解説を見る

正解:C. T2とT4

チェックポイントでは、その時点までにメモリ上で更新されたデータベースのページを記憶装置に書き込み、そのことをログに記録します。そのため、チェックポイントより前にコミットしたT1の更新は、すでにデータベース本体に反映されていて、回復の処理は要りません。チェックポイントのあと障害の前にコミットしたT2とT4は、コミットは完了しているのに、更新の一部が本体に書かれていない可能性があるので、ログの更新後の値を使ってやり直します(ロールフォワード)。障害の時点でコミットしていなかったT3とT5は、本体に書かれた途中の更新があれば、ログの更新前の値を使って取り消します(ロールバック)。T3のようにチェックポイントの前に開始したトランザクションも、コミットしていなければ取り消しの対象です。チェックポイントを取っておくと、ログを最初からすべてたどる必要がなくなり、回復の時間が短くなります。

  • A. T3とT5はコミットしていないので、ロールバックの対象です。
  • B. T1はチェックポイントより前にコミットしており、更新は本体に反映済みなので対象外です。
  • C. 正しい。チェックポイントのあと障害の前にコミットしたT2とT4をロールフォワードします。
この分野を解く 分野ページへ

関連する計算ツール

データベースの基礎の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

データベースの基礎のほかの問題

  1. 100万行ある会員表の会員番号の列にB+木のインデックスを作成した。一般に期待できる効果と、その代償の組み合わせとして正しいものはどれか。
  2. 100万行の会員表で、会員番号(すべて異なる)、都道府県(47種類)、性別(2種類でほぼ半々)の列に、それぞれB+木のインデックスを作ることを考える。WHERE句で1つの列の値を指定して検索するとき、インデックスの効果が最も小さいと考えられる列はどれか。
  3. NoSQLと呼ばれるデータベースのうち、キー・バリュー型の特徴として、一般に正しいものはどれか。
  4. 複数のサーバにデータの複製を置く分散データベースについての、CAP定理の説明として適切なものはどれか。
  5. 関係データベースの用語で、表(リレーション)の1行に当たるものはどれか。