基本情報技術者試験過去問 - 分野別(科目A) - トランザクション処理
令和8年7月修了 問22
図は,OSの不具合による障害発生以前のデータベースを更新しているトランザクション実行の様子を示している。トランザクション T1~T4 のうち,DBMSの再起動後に,ロールフォワードによって回復されるトランザクションはどれか。

| ア | T1 |
|---|---|
| イ | T2 |
| ウ | T3 |
| エ | T4 |
答え : イ
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
解説 :
ロールフォワードとは,データベースに障害が発生した際,バックアップの時点からログ(更新履歴の記録)を使って,正常にコミット(確定)が完了していたトランザクションの更新内容を再現し,障害発生直前の状態まで復旧させる処理のことです。この問題では,障害発生時点で正常にコミットが完了していたトランザクションT2が,ロールフォワードによって回復される対象となります。
逆に,コミットされる前に障害が発生してしまったトランザクションについては,更新内容を取り消す「ロールバック」の対象となります。図の中でどのトランザクションが障害発生前にコミット処理を完了させていたかを丁寧に確認することが,この問題を解く鍵になります。
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
解説 :
ロールフォワードとは,データベースに障害が発生した際,バックアップの時点からログ(更新履歴の記録)を使って,正常にコミット(確定)が完了していたトランザクションの更新内容を再現し,障害発生直前の状態まで復旧させる処理のことです。この問題では,障害発生時点で正常にコミットが完了していたトランザクションT2が,ロールフォワードによって回復される対象となります。
逆に,コミットされる前に障害が発生してしまったトランザクションについては,更新内容を取り消す「ロールバック」の対象となります。図の中でどのトランザクションが障害発生前にコミット処理を完了させていたかを丁寧に確認することが,この問題を解く鍵になります。
令和8年6月修了 問22
DBMSのチェックポイント時点の処理を正しい順番に並べたものはどれか。
① チェックポイントレコードをログに書き出す。
② トランザクションを再開する。
③ データベースバッファの内容を全てデータベースに書き出す。
④ 実行中のトランザクションを全て一時停止する。
① チェックポイントレコードをログに書き出す。
② トランザクションを再開する。
③ データベースバッファの内容を全てデータベースに書き出す。
④ 実行中のトランザクションを全て一時停止する。
| ア | ①→④→③→② |
|---|---|
| イ | ③→④→①→② |
| ウ | ④→①→③→② |
| エ | ④→③→①→② |
答え : エ
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
解説 :
トランザクション処理における「チェックポイント」は,「その時点までの更新内容を確実にディスクへ反映させる」処理です。順序は次の通りです。④実行中のトランザクションを一時停止する→①チェックポイントレコードをログに書き出す→③データベースバッファの内容を全てDBに書き出す→②トランザクションを再開する一時停止して整合性のある状態を作り,記録を残し,実際に書き込み,それから処理を再開する,という流れです。
「ア」は,記録を先に取ってから一時停止しており,整合性のある状態を作る前にログを書いてしまう誤った順序です。「イ」は,一時停止する前にバッファを書き出しており,更新中のデータが混ざる可能性があるため不適切です。「ウは,一見近い順序ですが,正解の「エ」と比較すると①と③の間の処理内容の順序が問題文の趣旨と整合しない点で誤りとなります。「安全に確実な状態を記録する」という処理の目的から順序を論理的に組み立てましょう。
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
解説 :
トランザクション処理における「チェックポイント」は,「その時点までの更新内容を確実にディスクへ反映させる」処理です。順序は次の通りです。④実行中のトランザクションを一時停止する→①チェックポイントレコードをログに書き出す→③データベースバッファの内容を全てDBに書き出す→②トランザクションを再開する一時停止して整合性のある状態を作り,記録を残し,実際に書き込み,それから処理を再開する,という流れです。
「ア」は,記録を先に取ってから一時停止しており,整合性のある状態を作る前にログを書いてしまう誤った順序です。「イ」は,一時停止する前にバッファを書き出しており,更新中のデータが混ざる可能性があるため不適切です。「ウは,一見近い順序ですが,正解の「エ」と比較すると①と③の間の処理内容の順序が問題文の趣旨と整合しない点で誤りとなります。「安全に確実な状態を記録する」という処理の目的から順序を論理的に組み立てましょう。
令和8年1月修了 問22
| ア | バックアップ取得後でコミット前に中断した全てのトランザクションをロールバックする。 |
|---|---|
| イ | バックアップ取得後でコミット前に中断した全てのトランザクションをロールフォワードする。 |
| ウ | バックアップ取得後にコミットした全てのトランザクションをロールバックする。 |
| エ | バックアップ取得後にコミットした全てのトランザクションをロールフォワードする。 |
答え : エ
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
解説 :
データベースの障害回復に関する処理手順を問う問題です。媒体障害(ハードディスクの故障など)が発生した場合,まず最新のバックアップをリストア(復元)します。その後,バックアップ取得後にコミット(確定)された全てのトランザクションについて,トランザクションログを使って再実行する「ロールフォワード」という操作を行い,データを最新の状態まで復元します。
誤りの選択肢のうち,「バックアップ取得後で未コミットのトランザクションをロールバックする」という説明は,システム障害時の回復処理(アクティブトランザクションの取消し)に近い内容であり,媒体障害からの復旧手順としては誤りです。「コミット前のトランザクションをロールフォワードする」「コミット済みのトランザクションをロールバックする」という説明も,コミットの有無と処理内容の組合せが逆になっており,正しくありません。ロールフォワードは「コミット済みの変更を再現する」処理,ロールバックは「未コミットの変更を取り消す」処理という対応関係を正確に覚えることが重要です。
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
解説 :
データベースの障害回復に関する処理手順を問う問題です。媒体障害(ハードディスクの故障など)が発生した場合,まず最新のバックアップをリストア(復元)します。その後,バックアップ取得後にコミット(確定)された全てのトランザクションについて,トランザクションログを使って再実行する「ロールフォワード」という操作を行い,データを最新の状態まで復元します。
誤りの選択肢のうち,「バックアップ取得後で未コミットのトランザクションをロールバックする」という説明は,システム障害時の回復処理(アクティブトランザクションの取消し)に近い内容であり,媒体障害からの復旧手順としては誤りです。「コミット前のトランザクションをロールフォワードする」「コミット済みのトランザクションをロールバックする」という説明も,コミットの有無と処理内容の組合せが逆になっており,正しくありません。ロールフォワードは「コミット済みの変更を再現する」処理,ロールバックは「未コミットの変更を取り消す」処理という対応関係を正確に覚えることが重要です。
令和7年12月修了 問22
| ア | 共有ロック獲得済の資源に対して,別のトランザクションからの新たな共有ロックの獲得を認める。 |
|---|---|
| イ | 共有ロック獲得済の資源に対して,別のトランザクションからの新たな専有ロックの獲得を認める。 |
| ウ | 専有ロック獲得済の資源に対して,別のトランザクションからの新たな共有ロックの獲得を認める。 |
| エ | 専有ロック獲得済の資源に対して,別のトランザクションからの新たな専有口ックの獲得を認める。 |
答え : ア
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
解説 :
トランザクションの同時実行制御に用いられるロックの動作に関する記述として適切なものを選ぶ問題です。「共有ロック」は複数のトランザクションが同時にデータを読み取ることを許可するためのロックであり,既に共有ロックが獲得されている資源に対して,別のトランザクションが新たに共有ロックを獲得することは認められます。選択肢「ア」が正解です。
「イ」と「ウ」は,共有ロックと専有ロック(排他ロック)は互いに両立しないため,片方が獲得されている資源に対してもう一方のロックを新たに獲得することはできません。「エ」は,専有ロックは他のどのロックとも両立しないため,既に専有ロックが獲得されている資源に対して別のトランザクションが新たな専有ロックを獲得することはできません。
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
解説 :
トランザクションの同時実行制御に用いられるロックの動作に関する記述として適切なものを選ぶ問題です。「共有ロック」は複数のトランザクションが同時にデータを読み取ることを許可するためのロックであり,既に共有ロックが獲得されている資源に対して,別のトランザクションが新たに共有ロックを獲得することは認められます。選択肢「ア」が正解です。
「イ」と「ウ」は,共有ロックと専有ロック(排他ロック)は互いに両立しないため,片方が獲得されている資源に対してもう一方のロックを新たに獲得することはできません。「エ」は,専有ロックは他のどのロックとも両立しないため,既に専有ロックが獲得されている資源に対して別のトランザクションが新たな専有ロックを獲得することはできません。
令和7年7月修了 問18
| ア | インデックスの見直し |
|---|---|
| イ | ストアドプロシージャ機能の利用 |
| ウ | データベースの再編成 |
| エ | 動的SQLの利用 |
答え : イ
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
解説 :
クライアントサーバシステムにおいて,大量のSQL文が原因で発生する通信負荷の問題を解決する方法を問うものです。クライアントとサーバの間で一つずつ逐次的にSQL文をやり取りすると,通信の回数が増えて負荷が高くなります。これを解決する方法として,複数のSQL処理をあらかじめサーバ側に「ストアドプロシージャ」としてまとめて登録しておき,クライアントからは呼び出し命令を1回送るだけで済むようにする方法が有効です。この説明に合致するのは選択肢「イ」です。
誤りの選択肢のうち,「インデックスの見直し」は検索処理の高速化には役立ちますが,通信回数そのものを減らす対策ではありません。「データベースの再編成」は断片化したデータを整理してアクセス効率を高める対策であり,通信負荷の直接的な解決策ではありません。「動的SQLの利用」はむしろ都度SQL文を生成して送信するため,通信負荷を減らす対策としては不適切です。通信回数を減らすという観点からストアドプロシージャの利点を理解しておくことが大切です。
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
解説 :
クライアントサーバシステムにおいて,大量のSQL文が原因で発生する通信負荷の問題を解決する方法を問うものです。クライアントとサーバの間で一つずつ逐次的にSQL文をやり取りすると,通信の回数が増えて負荷が高くなります。これを解決する方法として,複数のSQL処理をあらかじめサーバ側に「ストアドプロシージャ」としてまとめて登録しておき,クライアントからは呼び出し命令を1回送るだけで済むようにする方法が有効です。この説明に合致するのは選択肢「イ」です。
誤りの選択肢のうち,「インデックスの見直し」は検索処理の高速化には役立ちますが,通信回数そのものを減らす対策ではありません。「データベースの再編成」は断片化したデータを整理してアクセス効率を高める対策であり,通信負荷の直接的な解決策ではありません。「動的SQLの利用」はむしろ都度SQL文を生成して送信するため,通信負荷を減らす対策としては不適切です。通信回数を減らすという観点からストアドプロシージャの利点を理解しておくことが大切です。
令和7年7月修了 問22
| ア | 一貫性(consistency) |
|---|---|
| イ | 原子性(atomicity) |
| ウ | 耐久性(durability) |
| エ | 独立性(isolation) |
答え : イ
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
解説 :
トランザクション処理が持つべき性質(ACID特性)のうち,「原子性」(atomicity)について問うものです。原子性とは,トランザクションに含まれる一連の更新処理が,完全にすべて実行されるか,あるいはまったく実行されなかったかのいずれかの結果になることを保証する性質です。途中で処理が中断された場合には,それまでの更新も取り消され,処理前の状態に戻されます。この説明に合致するのは選択肢「イ」です。
誤りの選択肢のうち「一貫性」はトランザクションの実行前後でデータベースの整合性が保たれることを表す性質,「耐久性」はトランザクションが完了した後,その結果が障害が発生しても失われないことを保証する性質,「独立性」は複数のトランザクションが同時に実行されても互いに干渉しないことを保証する性質です。ACID特性はそれぞれ役割が異なるため,原子性・一貫性・独立性・耐久性の頭文字とその意味を区別して覚えておくことが大切です。
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
解説 :
トランザクション処理が持つべき性質(ACID特性)のうち,「原子性」(atomicity)について問うものです。原子性とは,トランザクションに含まれる一連の更新処理が,完全にすべて実行されるか,あるいはまったく実行されなかったかのいずれかの結果になることを保証する性質です。途中で処理が中断された場合には,それまでの更新も取り消され,処理前の状態に戻されます。この説明に合致するのは選択肢「イ」です。
誤りの選択肢のうち「一貫性」はトランザクションの実行前後でデータベースの整合性が保たれることを表す性質,「耐久性」はトランザクションが完了した後,その結果が障害が発生しても失われないことを保証する性質,「独立性」は複数のトランザクションが同時に実行されても互いに干渉しないことを保証する性質です。ACID特性はそれぞれ役割が異なるため,原子性・一貫性・独立性・耐久性の頭文字とその意味を区別して覚えておくことが大切です。
令和7年6月修了 問22
| ア | あるトランザクションが共有ロックを獲得している資源に対して,別のトランザクションが共有ロックを獲得することは可能である。 |
|---|---|
| イ | あるトランザクションが共有ロックを獲得している資源に対して,別のトランザクションが専有ロックを獲得することは可能である。 |
| ウ | あるトランザクションが専有ロックを獲得している資源に対して,別のトランザクションが共有ロックを獲得することは可能である。 |
| エ | あるトランザクションが専有ロックを獲得している資源に対して,別のトランザクションが専有ロックを獲得することは可能である。 |
答え : ア
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
解説 :
排他制御において,共有ロック(Sロック)は複数のトランザクションが同時に取得することが可能なロックであり,主にデータの参照(読み取り)を行う際に用いられます。一方,専有ロック(Xロック)は他のいかなるロックとも同時に取得できないロックであり,データの更新を行う際に用いられます。
あるトランザクションが共有ロックを獲得している資源に対して,別のトランザクションが同じく共有ロックを獲得することは可能であり,正解は「ア」です。「イ」と「ウ」は共有ロックと専有ロックが同時に成立し得るとしている点で誤りです。「エ」は専有ロックを獲得している資源に対して別のトランザクションが専有ロックを獲得できるとしていますが,専有ロック同士は排他的であるため同時に獲得することはできません。
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
解説 :
排他制御において,共有ロック(Sロック)は複数のトランザクションが同時に取得することが可能なロックであり,主にデータの参照(読み取り)を行う際に用いられます。一方,専有ロック(Xロック)は他のいかなるロックとも同時に取得できないロックであり,データの更新を行う際に用いられます。
あるトランザクションが共有ロックを獲得している資源に対して,別のトランザクションが同じく共有ロックを獲得することは可能であり,正解は「ア」です。「イ」と「ウ」は共有ロックと専有ロックが同時に成立し得るとしている点で誤りです。「エ」は専有ロックを獲得している資源に対して別のトランザクションが専有ロックを獲得できるとしていますが,専有ロック同士は排他的であるため同時に獲得することはできません。
令和7年1月修了 問22
Webページへのアクセス件数を調べる目的でアクセスカウンタを作成した。図に示すとおり,2人の閲覧者が同時にアクセスしたところ,サーバ内の処理は①~④の順序で実行された。2人がアクセスする前のアクセスカウンタの値が100であったとすると,処理④が終了した時点のアクセスカウンタの値は幾らになるか。

| ア | 100 |
|---|---|
| イ | 101 |
| ウ | 102 |
| エ | 104 |
答え : イ
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
解説 :
複数の利用者が同時にデータを更新しようとしたときに起こる「排他制御」に関する問題です。図のように,閲覧者1と閲覧者2がほぼ同時にWebページへアクセスし,サーバ内ではアクセスカウンタの値を読み込んで1を加算し,それを書き込むという処理が①から④の順に実行されます。もともとアクセスカウンタの値は100でした。
まず①で閲覧者1向けの処理がアクセスカウンタを読み込みます。このとき値はまだ100なので,読み込んだ値は100です。次に②で閲覧者2向けの処理も,まだ誰も書き込みをしていない状態でアクセスカウンタを読み込むため,こちらも100を読み込みます。
次に③で,①で読み込んだ100に1を加えた101を書き込み,アクセスカウンタは101になります。最後に④で,②で読み込んだ100に1を加えた101を書き込みます。②の処理は③で更新された後の値ではなく,更新前の古い値100を読み込んでいたため,④の書き込みでもやはり101になってしまいます。
本来は2人がアクセスしたので102になってほしいところですが,同時に読み込んでしまったために,片方の更新が失われてしまう「更新の紛失」という問題が起きています。従って,処理④が終了した時点の値は101で,正解は「イ」です。
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
解説 :
複数の利用者が同時にデータを更新しようとしたときに起こる「排他制御」に関する問題です。図のように,閲覧者1と閲覧者2がほぼ同時にWebページへアクセスし,サーバ内ではアクセスカウンタの値を読み込んで1を加算し,それを書き込むという処理が①から④の順に実行されます。もともとアクセスカウンタの値は100でした。
まず①で閲覧者1向けの処理がアクセスカウンタを読み込みます。このとき値はまだ100なので,読み込んだ値は100です。次に②で閲覧者2向けの処理も,まだ誰も書き込みをしていない状態でアクセスカウンタを読み込むため,こちらも100を読み込みます。
次に③で,①で読み込んだ100に1を加えた101を書き込み,アクセスカウンタは101になります。最後に④で,②で読み込んだ100に1を加えた101を書き込みます。②の処理は③で更新された後の値ではなく,更新前の古い値100を読み込んでいたため,④の書き込みでもやはり101になってしまいます。
本来は2人がアクセスしたので102になってほしいところですが,同時に読み込んでしまったために,片方の更新が失われてしまう「更新の紛失」という問題が起きています。従って,処理④が終了した時点の値は101で,正解は「イ」です。
令和6年12月修了 問22
ロックの両立性に関する記述のうち,適切なものはどれか。
| ア | トランザクションT1が共有ロックを獲得している資源に対して,トランザクションT2は共有ロックと専有ロックのどちらも獲得することができる。 |
|---|---|
| イ | トランザクションT1,が共有ロックを獲得している資源に対して,トランザクションT2は共有ロックを獲得することはできるが,専有ロックを獲得することはできない。 |
| ウ | トランザクションT1,が専有ロックを獲得している資源に対して,トランザクションT2は専有ロックと共有ロックのどちらも獲得することができる。 |
| エ | トランザクションT1,が専有ロックを獲得している資源に対して,トランザクションT2は専有ロックを獲得することはできるが,共有ロックを獲得することはできない。 |
答え : イ
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
解説 :
「ロック」とは,複数の処理(トランザクション)が同時に同じデータを操作しようとしたときに,データの矛盾が起きないように,一時的にそのデータへのアクセスを制限する仕組みです。ロックには大きく分けて,複数のトランザクションが同時に取得できる「共有ロック」(主にデータを読むためのロック)と,1つのトランザクションしか取得できない「専有ロック」あるいは「排他ロック」(主にデータを書き換えるためのロック)の2種類があります。
「両立性」とは,あるロックがすでに掛けられている資源に対して,別のトランザクションがどのようなロックを追加で取得できるかという相性のことです。共有ロックがすでに掛けられている資源に対しては,他のトランザクションはデータを読むだけの共有ロックであれば追加で取得できますが,データを書き換える専有ロックは取得できません。
これは,複数人が同時に閲覧することは問題なくても,誰かが閲覧している最中に別の誰かが書き換えてしまうと矛盾が生じるためです。従って,正解は「イ」です。「ア」「ウ」「エ」は,いずれも共有ロックと専有ロックの組み合わせの許可・不許可の関係を取り違えており,実際のロックの両立性のルールとは異なります。
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
解説 :
「ロック」とは,複数の処理(トランザクション)が同時に同じデータを操作しようとしたときに,データの矛盾が起きないように,一時的にそのデータへのアクセスを制限する仕組みです。ロックには大きく分けて,複数のトランザクションが同時に取得できる「共有ロック」(主にデータを読むためのロック)と,1つのトランザクションしか取得できない「専有ロック」あるいは「排他ロック」(主にデータを書き換えるためのロック)の2種類があります。
「両立性」とは,あるロックがすでに掛けられている資源に対して,別のトランザクションがどのようなロックを追加で取得できるかという相性のことです。共有ロックがすでに掛けられている資源に対しては,他のトランザクションはデータを読むだけの共有ロックであれば追加で取得できますが,データを書き換える専有ロックは取得できません。
これは,複数人が同時に閲覧することは問題なくても,誰かが閲覧している最中に別の誰かが書き換えてしまうと矛盾が生じるためです。従って,正解は「イ」です。「ア」「ウ」「エ」は,いずれも共有ロックと専有ロックの組み合わせの許可・不許可の関係を取り違えており,実際のロックの両立性のルールとは異なります。
令和6年7月修了 問22
データベースシステムにおいて,二つのプログラムが同一データへのアクセス要求を行うとき,後続プログラムのアクセス要求に対する並行実行の可否の組合せのうち,適切なものはどれか。ここで,表中の○は二つのプログラムが並行して実行されることを表し,×は先行プログラムの実行終了まで後続プログラムは待たされることを表す。
| ア |
| |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| イ |
| |||||||||||||
| ウ |
| |||||||||||||
| エ |
| |||||||||||||
答え : エ
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
この問題では,後続プログラムのアクセスモードと先行プログラムのアクセスモードの組み合わせによって,並行実行が可能かどうかが問われています。データベースの排他制御では,「共用モード」は複数のプログラムが同時に参照することを許すロックであり,「排他モード」は他のプログラムのアクセスを許さない強いロックです。
先行プログラムが共用モードでアクセスしている場合,後続プログラムが共用モードであれば同時に参照するだけなので並行実行が可能ですが,後続プログラムが排他モードで更新しようとする場合は待たされます。また先行プログラムが排他モードでアクセスしている場合,後続プログラムが共用モードでも排他モードでも,先行プログラムの処理が終わるまで待たされることになります。
「ア」「イ」「ウ」は,この排他制御の基本的な組み合わせと一致しない部分があり,正しい対応表になっているのは「エ」だけです。表の意味を正確に理解し,共用と排他の組み合わせを一つずつ確認することが大切です。
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
同一問題 : 〔令5修1問29〕
解説 : この問題では,後続プログラムのアクセスモードと先行プログラムのアクセスモードの組み合わせによって,並行実行が可能かどうかが問われています。データベースの排他制御では,「共用モード」は複数のプログラムが同時に参照することを許すロックであり,「排他モード」は他のプログラムのアクセスを許さない強いロックです。
先行プログラムが共用モードでアクセスしている場合,後続プログラムが共用モードであれば同時に参照するだけなので並行実行が可能ですが,後続プログラムが排他モードで更新しようとする場合は待たされます。また先行プログラムが排他モードでアクセスしている場合,後続プログラムが共用モードでも排他モードでも,先行プログラムの処理が終わるまで待たされることになります。
「ア」「イ」「ウ」は,この排他制御の基本的な組み合わせと一致しない部分があり,正しい対応表になっているのは「エ」だけです。表の意味を正確に理解し,共用と排他の組み合わせを一つずつ確認することが大切です。
令和6年6月修了 問22
| ア | トランザクションファイル |
|---|---|
| イ | マスタファイル |
| ウ | ロールバックファイル |
| エ | ログファイル |
答え : エ
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
解説 :
データベースが媒体障害(ディスクの物理的な故障など)を起こした際の復旧には,定期的に取得しておくバックアップファイルに加えて,更新履歴を記録したログファイル(ジャーナルファイル)が必要です。バックアップ取得後の更新内容をログファイルから再現(ロールフォワード)することで,障害直前の状態まで復旧できます。正解は「エ」です。
「ア」のトランザクションファイルはマスタファイルを更新するための入力データを指す用語で媒体障害復旧とは直接関係がない,「イ」のマスタファイルは基本となるデータそのものであり復旧の手段ではない,「ウ」のロールバックファイルという名称のファイルは一般的なデータベース用語としては存在しません。
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
解説 :
データベースが媒体障害(ディスクの物理的な故障など)を起こした際の復旧には,定期的に取得しておくバックアップファイルに加えて,更新履歴を記録したログファイル(ジャーナルファイル)が必要です。バックアップ取得後の更新内容をログファイルから再現(ロールフォワード)することで,障害直前の状態まで復旧できます。正解は「エ」です。
「ア」のトランザクションファイルはマスタファイルを更新するための入力データを指す用語で媒体障害復旧とは直接関係がない,「イ」のマスタファイルは基本となるデータそのものであり復旧の手段ではない,「ウ」のロールバックファイルという名称のファイルは一般的なデータベース用語としては存在しません。
令和6年公開問題 問7
| ア | 同一データベースに対する同一処理は,何度実行しても結果は同じである。 |
|---|---|
| イ | トランザクション完了後にハードウェア障害が発生しても,更新されたデータベースの内容は保証される。 |
| ウ | トランザクション内の処理は,全てが実行されるか,全てが取り消されるかのいずれかである。 |
| エ | 一つのトランザクションの処理結果は,他のトランザクション処理の影響を受けない。 |
答え : ウ
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
データベース管理システム(DBMS)が備えるべき原子性についての問題です。「原子性」(atomicity)とは,トランザクション内のすべての処理が完全に実行されるか,あるいはすべて取り消されるかのいずれかであり,処理が中途半端な状態で終わることを許さない性質のことです。正解は選択肢「ウ」です。
「ア」は同じ処理を何度実行しても結果が変わらないという性質であり,これは「冪等性」(べきとうせい)と呼ばれる別の概念です。
「イ」はトランザクション完了後にハードウェア障害が発生してもデータが失われないという性質であり,これは「耐久性」(durability)の説明にあたります。
「エ」は一つのトランザクションの処理結果が他のトランザクションの影響を受けないという性質であり,これは「独立性」(isolation)の説明です。
原子性・一貫性・独立性・耐久性はまとめて「ACID特性」と呼ばれ,それぞれの意味を区別して覚えておくことが重要です。
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
同一問題 : 〔令4修1問28〕
解説 : データベース管理システム(DBMS)が備えるべき原子性についての問題です。「原子性」(atomicity)とは,トランザクション内のすべての処理が完全に実行されるか,あるいはすべて取り消されるかのいずれかであり,処理が中途半端な状態で終わることを許さない性質のことです。正解は選択肢「ウ」です。
「ア」は同じ処理を何度実行しても結果が変わらないという性質であり,これは「冪等性」(べきとうせい)と呼ばれる別の概念です。
「イ」はトランザクション完了後にハードウェア障害が発生してもデータが失われないという性質であり,これは「耐久性」(durability)の説明にあたります。
「エ」は一つのトランザクションの処理結果が他のトランザクションの影響を受けないという性質であり,これは「独立性」(isolation)の説明です。
原子性・一貫性・独立性・耐久性はまとめて「ACID特性」と呼ばれ,それぞれの意味を区別して覚えておくことが重要です。
令和5年1月修了 問28
トランザクションTはチェックポイント取得後に完了したが,その後にシステム障害が発生した。トランザクションTの更新内容をその終了直後の状態にするために用いられる復旧技法はどれか。ここで,チェックポイントの他に,トランザクションログを利用する。
| ア | 2相ロック |
|---|---|
| イ | シャドウページ |
| ウ | ロールバック |
| エ | ロールフォワード |
答え : エ
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
解説 :
「ロールフォワード」とは,システム障害が発生した際に,チェックポイント取得時点のデータベースの状態を基準として,その後のトランザクションログに記録された更新内容を再度適用し,障害発生直前の状態まで復旧させる技法です。
トランザクションTはチェックポイント取得後に正常に完了しているため,そのログを使って更新内容を再適用することで,Tの更新結果を反映した状態に戻すことができます。「エ」が正解です。
「ウ」のロールバックは,逆にトランザクションの更新内容を取り消して,実行前の状態に戻す処理であり,正常に完了したトランザクションの結果を残したい今回の状況には適していません。
「ア」の2相ロックは,トランザクションの同時実行制御に用いられる技法であり,障害からの復旧技法ではありません。
「イ」のシャドウページは,更新前のページを別の場所に保持しておくことで障害時に元に戻せるようにする技法であり,ロールフォワードとは異なるアプローチです。
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
解説 :
「ロールフォワード」とは,システム障害が発生した際に,チェックポイント取得時点のデータベースの状態を基準として,その後のトランザクションログに記録された更新内容を再度適用し,障害発生直前の状態まで復旧させる技法です。
トランザクションTはチェックポイント取得後に正常に完了しているため,そのログを使って更新内容を再適用することで,Tの更新結果を反映した状態に戻すことができます。「エ」が正解です。
「ウ」のロールバックは,逆にトランザクションの更新内容を取り消して,実行前の状態に戻す処理であり,正常に完了したトランザクションの結果を残したい今回の状況には適していません。
「ア」の2相ロックは,トランザクションの同時実行制御に用いられる技法であり,障害からの復旧技法ではありません。
「イ」のシャドウページは,更新前のページを別の場所に保持しておくことで障害時に元に戻せるようにする技法であり,ロールフォワードとは異なるアプローチです。
令和4年12月修了 問29
データベースの障害復旧に関する記述のうち,適切なものはどれか。
| ア | データベースのシステム障害に対しては,トランザクション処理の途中にスナップショットの設定をして,その時点からリスタート処理を行う。 |
|---|---|
| イ | データベースの媒体障害に対しては,バックアップ時点の状態に復元した後,ジャーナルファイルの更新後情報を使用してロールフォワード処理を行う。 |
| ウ | データベースの論理的障害によってトランザクション処理がデッドロック状態になり,処理が終了しない場合,排他制御を解除する。 |
| エ | トランザクション処理プログラムが,データベースの更新途中に物理的原因以外で異常終了した場合,ジャーナルファイルの更新後情報を使用してロールバック処理を行う。 |
答え : イ
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
データベースの障害には,大きく分けてシステム障害,媒体障害,論理的障害などの種類があり,それぞれに応じた復旧方法が用いられます。媒体障害とは,ディスク装置などの物理的な記憶媒体自体が損傷を受けることによって発生する障害のことです。
選択肢「イ」にある通り,媒体障害が発生した場合には,あらかじめ取得しておいたバックアップの時点までデータベースの状態を復元した後,ジャーナルファイルに記録されている更新後情報を使って,バックアップ取得時点から障害発生直前までの更新内容を再度適用するロールフォワード処理を行うことで,データベースを復旧させます。
「ア」は,システム障害に対してトランザクション処理の途中でスナップショットを設定し,その時点からリスタート処理を行うという説明ですが,システム障害への対応としてはチェックポイントを用いたリスタート処理が一般的であり,記述の仕方がやや不正確です。
「ウ」は,論理的障害によってデッドロックが発生した場合に排他制御を解除するという説明ですが,デッドロックの解消には特定のトランザクションを強制的に中止するなどの対応が必要であり,単純に排他制御を解除するという記述は不適切です。
「エ」は,トランザクション処理プログラムが異常終了した場合に,ジャーナルファイルの更新後情報を使ってロールバック処理を行うという説明ですが,ロールバック処理には更新後情報ではなく更新前情報を使用するため,この記述は誤りです。
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
同一問題 : 〔平26修1問33〕
解説 : データベースの障害には,大きく分けてシステム障害,媒体障害,論理的障害などの種類があり,それぞれに応じた復旧方法が用いられます。媒体障害とは,ディスク装置などの物理的な記憶媒体自体が損傷を受けることによって発生する障害のことです。
選択肢「イ」にある通り,媒体障害が発生した場合には,あらかじめ取得しておいたバックアップの時点までデータベースの状態を復元した後,ジャーナルファイルに記録されている更新後情報を使って,バックアップ取得時点から障害発生直前までの更新内容を再度適用するロールフォワード処理を行うことで,データベースを復旧させます。
「ア」は,システム障害に対してトランザクション処理の途中でスナップショットを設定し,その時点からリスタート処理を行うという説明ですが,システム障害への対応としてはチェックポイントを用いたリスタート処理が一般的であり,記述の仕方がやや不正確です。
「ウ」は,論理的障害によってデッドロックが発生した場合に排他制御を解除するという説明ですが,デッドロックの解消には特定のトランザクションを強制的に中止するなどの対応が必要であり,単純に排他制御を解除するという記述は不適切です。
「エ」は,トランザクション処理プログラムが異常終了した場合に,ジャーナルファイルの更新後情報を使ってロールバック処理を行うという説明ですが,ロールバック処理には更新後情報ではなく更新前情報を使用するため,この記述は誤りです。
令和4年6月修了 問28
分散データベースシステムにおいて,一連のトランザクション処理を行う複数サイトに更新処理が確定可能かどうかを問い合わせ,全てのサイトが確定可能である場合,更新処理を確定する方式はどれか。
| ア | 2相コミット |
|---|---|
| イ | 排他制御 |
| ウ | ロールバック |
| エ | ロールフォワード |
令和3年7月修了 問27
| ア | 他のトランザクションにデータを更新されないようにするために,テーブルに対するロックをアプリケーションプログラムが解放した。 |
|---|---|
| イ | トランザクション障害が発生したので,異常終了したトランザクションをDBMSがロールフォワードした。 |
| ウ | トランザクションの更新結果を確定するために,トランザクションをアプリケーションプログラムがロールバックした。 |
| エ | 複数のトランザクション間でデッドロックが発生したので,トランザクションをDBMSがロールバックした。 |
答え : エ
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
令和3年7月修了 問28
ロックの粒度に関する説明のうち,適切なものはどれか。
| ア | データを更新するときに,粒度を大きくすると,他のトランザクションの待ちが多くなり,全体のスループットが低下する。 |
|---|---|
| イ | 同一のデータを更新するトランザクション数が多いときに,粒度を大きくすると,同時実行できるトランザクション数が増える。 |
| ウ | 表の全データを参照するときに,粒度を大きくすると,他のトランザクションのデータ参照を妨げないようにできる。 |
| エ | 粒度を大きくすると,含まれるデータ数が多くなるので,一つのトランザクションでかけるロックの個数が多くなる。 |
令和2年6月修了 問29
“商品” 表に対して,更新SQL文を実行するトランザクションが,デッドロックの発生によって異常終了した。異常終了後の “商品” 表はどれか。ここで,“商品” 表に対する他のトランザクションは,参照は行うが更新はしないものとする。
商品
〔更新SQL文〕
DELETE FROM 商品 WHERE 商品 コード = ‘B020’
商品
| 商品コード | 商品名 | 販売単価 |
| A010 | AAA | 2,500 |
| B020 | BBB | 1,000 |
| C030 | CCC | 4,500 |
〔更新SQL文〕
DELETE FROM 商品 WHERE 商品 コード = ‘B020’
| ア |
| ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| イ |
| ||||||||||||
| ウ |
| ||||||||||||
| エ |
|
令和1年秋期 問28
一つのトランザクションはトランザクションを開始した後,五つの状態(アクティブ,アボート処理中,アボート済,コミット処理中,コミット済)を取り得るものとする。このとき,取ることのない状態遷移はどれか。
| 遷移前の状態 | 遷移後の状態 | |
| ア | アボート処理中 | アボート済 |
| イ | アボート処理中 | コミット処理中 |
| ウ | コミット処理中 | アボート処理中 |
| エ | コミット処理中 | コミット済 |
答え : イ
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
令和1年秋期 問29
2相ロッキングプロトコルに従ってロックを獲得するトランザクションA,Bを図のように同時実行した場合に,デッドロックが発生しないデータ処理順序はどれか。ここで,read と update の位置は,アプリケーションプログラムでの命令発行時点を表す。また,データWへの read は共有ロックを要求し,データX,Y,Zへの update は各データへの専有ロックを要求する。

| ① | ② | ③ | ④ | |
| ア | read W | update Y | update X | update Z |
| イ | read W | update Y | update Z | update X |
| ウ | update X | read W | update Y | update Z |
| エ | update Y | update Z | update X | read W |
答え : ウ
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
令和1年7月修了 問30
| ア | アクセス頻度の高いデータの処理速度を上げるためには,排他制御が必要である。 |
|---|---|
| イ | 処理速度を上げるため,排他制御を行うデータの範囲は極力大きくすべきである。 |
| ウ | データアクセス時のデッドロックを防止するために,排他制御が必要である。 |
| エ | 複数の人が同時に更新する可能性のあるデータには,排他制御が必要である。 |
平成30年6月修了 問29
| ア | DBMSの起動から停止まで |
|---|---|
| イ | チェックポイントから次のチェックポイントまで |
| ウ | データベースのバックアップ取得から媒体障害の発生時点まで |
| エ | トランザクションの開始からコミット又はロールバックまで |
平成30年6月修了 問30
表は,トランザクション1~3が資源A~Cにかけるロックの種別を表す。また,資源へのロックはトランザクションの開始と同時にかけられる。トランザクション1~3のうち二つのトランザクションをほぼ同時に開始した場合の動きについて,適切な記述はどれか。ここで,表中の “-” はロックなし,“S” は共有ロック,“X” は専有ロックを示す。
| 資源 | ||||
| A | B | C | ||
| トランザクション | 1 | S | - | X |
| 2 | S | X | - | |
| 3 | X | S | - | |
| ア | トランザクション1の後にトランザクション3を開始したとき,トランザクション3の資源待ちはない。 |
|---|---|
| イ | トランザクション2の後にトランザクション1を開始したとき,トランザクション1の資源待ちはない。 |
| ウ | トランザクション2の後にトランザクション3を開始したとき,トランザクション3の資源待ちはない。 |
| エ | トランザクション3の後にトランザクション1を開始したとき,トランザクション1の資源待ちはない。 |
平成30年春期 問30
RDBMSのロックの粒度に関する次の記述において,a,b の組合せとして適切なものはどれか。
並行に処理される二つのトランザクションがそれぞれ一つの表内の複数の行を更新する。行単位のロックを使用する場合と表単位のロックを使用する場合とを比べると,ロックの競合がより起こりやすいのは [ a ] 単位のロックを使用する場合である。また,トランザクション実行中にロックを管理するためのRDBMSのメモリ使用領域がより多く必要になるのは [ b ] 単位のロックを使用する場合である。
並行に処理される二つのトランザクションがそれぞれ一つの表内の複数の行を更新する。行単位のロックを使用する場合と表単位のロックを使用する場合とを比べると,ロックの競合がより起こりやすいのは [ a ] 単位のロックを使用する場合である。また,トランザクション実行中にロックを管理するためのRDBMSのメモリ使用領域がより多く必要になるのは [ b ] 単位のロックを使用する場合である。
| a | b | |
| ア | 行 | 行 |
| イ | 行 | 表 |
| ウ | 表 | 行 |
| エ | 表 | 表 |
答え : ウ
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
平成29年12月修了 問27
| ア | √X |
|---|---|
| イ | logX |
| ウ | X |
| エ | X! |
答え : イ
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
平成28年1月修了 問29
| ア | 2相ロックにおいて,第1相目でロックを行ってから第2相目でロックを解除するまでの状態のこと |
|---|---|
| イ | ある資源に対して専有ロックと専有ロックが競合し,片方のトランザクションが待ち状態になること |
| ウ | あるトランザクションがアクセス中の資源に対して,他のトランザクションからアクセスできないようにすること |
| エ | 複数のトランザクションが,互いに相手のロックしている資源を要求して待ち状態となり,実行できなくなること |
平成27年秋期 問26
インデックス方式のうち,キー値を基にして格納位置を算出するとき,異なったキー値でも同一の算出結果となる可能性があるものはどれか。
| ア | B+木インデックス |
|---|---|
| イ | 転置インデックス |
| ウ | ハッシュインデックス |
| エ | ビットマップインデックス |
答え : ウ
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
平成27年1月修了 問27
関係データベースの表の列に利用者がインデックスを設定する目的はどれか。
| ア | 外部キーの列の値を別の表の主キーの値に一致させる。 |
|---|---|
| イ | データの格納位置への効率的なアクセスが可能となり,検索速度の向上が期待できる。 |
| ウ | 一つの大きなテーブルを複数のディスクに分散格納する場合,ディスク容量が節約できる。 |
| エ | 列内に重複する値がないようにする。 |
平成24年12月修了 問34
| ア | 排他制御機能によって,同時実行処理でのデータの一貫性を保つことができる。 |
|---|---|
| イ | 排他制御機能を使うことで,デッドロックを防止できる。 |
| ウ | 排他制御は,アプリケーションプログラムから明示的に行う必要がある。 |
| エ | バッチ処理による更新では排他制御を行う必要はない。 |
平成24年6月修了 問32
データベースの回復処理に関する記述として,適切なものはどれか。
| ア | ウォームスタート方式の再始動では,チェックポイントまで戻り,更新情報のログを使用してデータベースを回復する。 |
|---|---|
| イ | 更新情報のログを見て,チェックポイントから後に正常終了したトランザクションの情報をデータベースに反映する操作をロールバックという。 |
| ウ | コールドスタート方式の再始動では,チェックポイントでのログと更新情報のログが使用される。 |
| エ | 障害発生時に終了していないトランザクションを更新前の状態に戻す操作をロールフォワードという。 |
答え : ア
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
平成24年春期 問32
| ア | システムダウンが発生したときにデータベースの回復処理時間を短縮するため,主記憶上の更新データを定期的にディスクに書き出したものである。 |
|---|---|
| イ | ディスク障害があってもシステムをすぐに復旧させるため,常に同一データのコピーを別ディスクや別サイトのデータベースに書き出したものである。 |
| ウ | ディスク障害からデータベースを回復するため,データベースの内容をディスク単位で複写したものである。 |
| エ | データベースの回復処理のため,データの更新前後の値を書き出してデータベースの更新記録を取ったものである。 |
平成24年1月修了 問32
| ア | Atomicity(原子性) |
|---|---|
| イ | Consistency(一貫性) |
| ウ | Isolation(隔離性) |
| エ | Durability(耐久性) |
答え : イ
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
平成24年1月修了 問33
| ア | あるトランザクションによって共有ロックがかけられている資源に対して,別のトランザクションから共有ロックをかけることは可能である。 |
|---|---|
| イ | あるトランザクションによって共有ロックがかけられている資源に対して,別のトランザクションから占有ロックをかけることは可能である。 |
| ウ | あるトランザクションによって占有ロックがかけられている資源に対して,別のトランザクションから共有ロックをかけることは可能である。 |
| エ | あるトランザクションによって占有ロックがかけられている資源に対して,別のトランザクションから占有ロックをかけることは可能である。 |