問題
問63
トランザクション処理におけるロールバックの説明として、適切なものはどれか。
- あるトランザクションが共有データを更新しようとしたとき、そのデータに対する他のトランザクションからの更新を禁止すること
- トランザクションが正常に処理されたときに、データベースへの更新を確定させること
- 何らかの理由で、トランザクションが正常に処理されなかったときに、データベースをトランザクション開始前の状態に戻すこと
- 複数の表を、互いに関係付ける列をキーとして、一つの表にすること
[出典:ITパスポート試験 平成30年度秋期 問63]
正解
正解は「ウ」です。
解説
正解は「ウ」です。ロールバックとは、データベースにおけるトランザクション処理の途中で何らかの問題(システム障害やエラーなど)が発生し、処理が正常に完了できなかった場合に、処理開始前の状態にデータベースを戻す機能のことです。これにより、データに矛盾が生じるのを防ぎ、データベースの整合性を保ちます。
例えば、銀行のATMでAさんの口座からBさんの口座へ送金する処理を考えてみましょう。Aさんの口座からお金が引き落とされた直後にシステム障害が発生し、Bさんの口座に入金する前に処理が停止してしまったとします。このとき、ロールバックが行われることで、Aさんの口座から引き落とされたお金が元に戻され、送金がなかったことにされます。もしロールバック機能がなければ、Aさんのお金だけが減ってしまい、Bさんには届かないというデータの不整合が起こってしまいます。このように、ロールバックはデータの正確性を保証するために不可欠な機能なのです。
ア(あるトランザクションが共有データを更新しようとしたとき、そのデータに対する他のトランザクションからの更新を禁止すること):
これは「排他制御(ロック)」と呼ばれる機能の説明です。複数の処理が同時に同じデータにアクセスして書き換えを行う際に、データの矛盾を防ぐために、ある処理がデータを操作している間は他の処理からのアクセスを一時的に禁止する仕組みのことです。
イ(トランザクションが正常に処理されたときに、データベースへの更新を確定させること):
これは「コミット」と呼ばれる機能の説明です。トランザクション処理が全て正常に完了した際に、それまでの変更内容をデータベースに永久的に保存し、確定させる操作のことです。ロールバックとは対義語の関係にあります。
エ(複数の表を、互いに関係付ける列をキーとして、一つの表にすること):
これは「結合(JOIN)」と呼ばれるデータベース操作の説明です。リレーショナルデータベースにおいて、関連のある複数のテーブル(表)を特定の共通する項目(キー)を基に組み合わせて、一時的に一つのテーブルのように扱う機能のことです。
難易度
この問題は、データベースのトランザクション処理における基本的な概念である「ロールバック」について問うものです。ITパスポート試験では頻出のテーマですので、基本的な用語を学習していれば解きやすいでしょう。ただし、選択肢の各文章がそれぞれ別のデータベース関連用語(排他制御、コミット、結合)を指しているため、それぞれの用語の意味を正確に理解している必要があります。初心者の方にとっては、これらの用語を区別して覚えることがポイントになります。
用語補足
トランザクション処理:
データベースにおいて、一連の処理を一つのまとまり(単位)として扱うことです。例えば、銀行の送金処理のように、「A口座からお金を引く」と「B口座にお金を入れる」という複数の操作がすべて成功するか、すべて失敗するかのどちらかになるように管理します。
ロールバック:
トランザクション処理の途中でエラーなどが発生し、処理が正常に完了しなかった場合に、処理開始前のデータベースの状態にすべての変更を戻す機能です。不完全な変更がデータベースに残るのを防ぎ、データの整合性を保ちます。
コミット:
トランザクション処理がすべて正常に完了したと判断されたときに、それまでのデータベースへの変更内容を確定し、永続的に保存する操作です。これによって、変更がデータベースに正式に反映されます。
排他制御:
複数のプログラムやユーザーが同時に同じデータにアクセスして変更しようとすると、データの矛盾が生じる可能性があります。これを防ぐために、あるプログラムがデータを操作している間は、他のプログラムからのアクセスを一時的に禁止する仕組みのことです。銀行ATMで誰かが口座残高を変更している間、他の人が同じ口座にアクセスできないようにするようなイメージです。
対策
この問題を解くためのポイントは、データベースのトランザクション処理における主要な概念である「ACID特性」と、特にその中の「原子性」に関連する「コミット」と「ロールバック」の機能を正確に理解することです。コミットが「確定」を意味し、ロールバックが「取り消し・元に戻す」を意味する対義語の関係にあることを押さえておくと良いでしょう。また、選択肢に含まれる「排他制御」や「結合」といった他のデータベース関連用語についても、それぞれの役割と目的を明確にしておくことが、類題への対策にもつながります。

