令和3年度 ITパスポート試験 公開問題 問62 解説 データベースのトランザクション
金融システムの口座振替では,振替元の口座からの出金処理と振替先の口座への 入金処理について,両方の処理が実行されるか,両方とも実行されないかのどちら かであることを保証することによってデータベースの整合性を保っている。データ ベースに対するこのような一連の処理をトランザクションとして扱い,矛盾なく処 理が完了したときに,データベースの更新内容を確定することを何というか。
- ア コミット ✓ 正答
- イ スキーマ
- ウ ロールフォワード
- エ ロック
解説
この問題は、トランザクションの性質であるACID特性の中の「原子性(Atomicity)」に関連するキーワードを問うものです。問題文にある「両方の処理が実行されるか、両方とも実行されないかのどちらかである」という記述がまさに原子性の説明であり、その一連の処理を確定させる操作は「コミット」であると判断します。
トランザクション処理における重要用語の整理
データベースにおけるトランザクションとは、一連の不可分な処理単位を指します。金融システムの口座振替のように、途中で処理が中断されると金額の不整合(出金だけされて入金されないなど)が起こるような業務では、この考え方が不可欠です。
コミット トランザクションによるデータベースの更新内容を恒久的に確定させる操作です。コミットが実行されるまでは、データは仮の状態であり、もし途中でシステム障害などが起きれば、それまでの処理は無効(ロールバック)になります。
ロールバック コミットされる前の処理を無効にし、処理開始前の状態に戻す操作です。エラー発生時や、処理の途中で矛盾が生じた際にデータベースの整合性を守るために行われます。
ロールフォワード データベースの障害復旧方法の一つです。バックアップファイルに、障害直前までのログ情報を適用してデータを最新の状態に復元する作業を指します。コミットと混同しやすいですが、こちらは「障害回復」という文脈で使われます。
スキーマ データベースに格納されるデータの構造や制約を定義したものです。どのようなテーブルがあり、どのようなカラムで構成されているかといった「設計図」に相当する概念であり、処理の確定という操作とは異なります。
ロック 複数のユーザーが同時に同じデータを更新しようとした際に、順番待ちをさせる仕組みです。一方が処理している間、他方のアクセスを制限することで、データの競合や矛盾を防ぎます。
実務と試験における考え方
試験では、トランザクションに関連する用語がセットで問われます。特に「整合性を保つための確定がコミット」「矛盾が生じた際に元に戻すのがロールバック」「復旧作業がロールフォワード」という使い分けができるようにしておきましょう。
日常的なシステム利用においても、例えばオンラインショッピングで「注文ボタン」を押す動作は、在庫の引き当てと決済処理をセットで行うトランザクションの一例です。もし支払いが完了したのに注文が確定しないといったトラブルを防ぐため、システム内部では「処理がすべて成功したらコミット、失敗したらロールバック」というルールが厳密に運用されています。
ITパスポート試験のシラバス(知識の体系)においても、データベースの整合性維持は頻出項目です。特にこの問題のように、業務の具体例(口座振替)と技術用語を紐づけて理解しておくと、応用問題にも対応しやすくなります。
- データベーススペシャリスト試験:トランザクション管理
- JIS規格:JIS X 0017 情報処理用語-データベース