ITパスポート 2018年 秋期 問75
問題文
DBMSにおいて、一連の処理が全て成功したら処理結果を確定し、途中で失敗したら処理前の状態に戻す特性をもつものはどれか。
選択肢
ア:インデックス
イ:トランザクション(正解)
ウ:レプリケーション
エ:ログ
🔒 解説は解答すると表示されます
DBMSの特性に関する問題【ITパスポート 解説】
正解の理由
問題文は「一連の処理が全て成功したら処理結果を確定し、途中で失敗したら処理前の状態に戻す特性」を問うています。これはトランザクション(transaction:一連の処理単位)が持つ特性そのものです。トランザクションは「全て実行されるか、まったく実行されなかった状態に戻す(atomicity:原子性)」ことを保証します。処理を確定する操作をコミット(commit:確定)、失敗時に元に戻す操作をロールバック(rollback:取り消し)と呼びます。したがって正しい選択肢は イ です。
(用語の補足)
- DBMS(Database Management System:データベース管理システム)…データの保存・検索・整合性管理をするソフトウェア。
- トランザクション(transaction)…一連の処理を一つのまとまりとして扱う仕組み。
例:銀行の振替処理で「A口座から引き落とし、B口座に入金」という2つの処理は両方成功して初めて完了です。片方だけ実行されると問題になるため、トランザクションでまとめて扱います。
解法ステップ
- 問題文のキーワードを探す:「全て成功したら確定」「途中で失敗したら戻す」→ 「一連の処理のまとまりを原子化する」性質を指す。
- 各選択肢の意味を確認する(短くでよい)。
- トランザクションの説明が該当するか照合する。該当するので イ を選ぶ。
短く言うと、「処理を丸ごと成功か失敗かで扱う」→ トランザクション。
選択肢別の誤答解説
-
ア: インデックス(index:検索を速くする仕組み)
説明:データベースで検索を速くするための目次のような構造です。処理の成功・失敗を管理するものではありません。よって不正解。 -
イ: トランザクション(transaction:一連の処理単位)
説明:問題文の「全部成功で確定、途中で失敗なら元に戻す」をそのまま満たします。コミットとロールバックで結果の確定・取り消しを管理します。正解。 -
ウ: レプリケーション(replication:データ複製)
説明:データを別の場所にコピーして可用性(使える状態を保つ)やバックアップ性を高める仕組みです。複製の方法はトランザクションと組み合わせて整合性を保てますが、単独で「処理の成功・失敗の丸め込み」を保証するものではありません。 -
エ: ログ(log:操作や状態の記録)
説明:何が行われたかの記録を残す仕組みです。ログは復旧時にロールバックやロールフォワード(再実行)に使われますが、ログ自体が「処理を確定する/戻す」性質ではありません。トランザクションが行う管理を支える役割です。
よくある誤解
-
「ログがあればトランザクションは不要」
→ ログは記録であり、復旧に使いますが、トランザクションは実行時の一貫性(原子性など)を保証する仕組みです。役割が違います。 -
「レプリケーション=トランザクションの代わり」
→ レプリケーションはデータを複製する機能であり、複製先での整合性を保つにはトランザクションや同期処理が必要です。単純な複製では「全体成功/全体失敗」の保証はできません。 -
「インデックスがあると処理の一貫性が保たれる」
→ インデックスは検索性能の改善であり、一貫性や原子性の保証とは無関係です。
補足コラム
トランザクションに関連してよく出る用語:ACID(エーシッド)。これは正しくデータを扱うための4つの性質で、覚え方の手がかりになります。
- Atomicity(原子性):処理は全体として成功するか全体として失敗するか。
- Consistency(一貫性):処理後もデータのルールが守られること。
- Isolation(独立性):同時実行される他の処理と干渉しないこと。
- Durability(耐久性):確定した変更は永続化され、失われないこと。
銀行振替の例で考えると、振替は「原子性」、口座残高のルールは「一貫性」、複数の振替が同時に起きても正しく処理されるのが「独立性」、一度コミットしたら電源障害でも反映され続けるのが「耐久性」です。
FAQ
Q1:トランザクションはいつ使うのですか?
A1:複数の関連する処理を一つにまとめて、全て成功するか全て失敗させたいときに使います。例:銀行振替、注文処理の在庫引当と請求。
A1:複数の関連する処理を一つにまとめて、全て成功するか全て失敗させたいときに使います。例:銀行振替、注文処理の在庫引当と請求。
Q2:コミットとロールバックの違いは?
A2:コミットは「変更を確定して公開する」操作、ロールバックは「変更を取り消して元に戻す」操作です。
A2:コミットは「変更を確定して公開する」操作、ロールバックは「変更を取り消して元に戻す」操作です。
Q3:ログはトランザクションの代わりになりますか?
A3:なりません。ログは記録であり、復旧や解析に必要ですが、リアルタイムでの一貫性保証はトランザクションの役割です。
A3:なりません。ログは記録であり、復旧や解析に必要ですが、リアルタイムでの一貫性保証はトランザクションの役割です。
Q4:レプリケーションでデータの安全性は高まりますか?
A4:はい。ただし複製が遅れると一時的にデータが不一致になることがあるため、追加の整合性対策(トランザクションや同期)が必要です。
A4:はい。ただし複製が遅れると一時的にデータが不一致になることがあるため、追加の整合性対策(トランザクションや同期)が必要です。
関連キーワード: DBMS、トランザクション、コミット、ロールバック、ACID、インデックス、レプリケーション、ログ、データ整合性、トランザクション管理

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

