Skip to the content.

最終更新日:2026年7月25日

まず結論

ACID特性とは、データベースのトランザクション処理を安全に行うための4つの性質です。

基本情報技術者試験では、次のように切り分けると判断しやすくなります。

性質 英語 判断の合図
原子性 Atomicity 全部実行するか、全く実行しない
一貫性 Consistency データの矛盾を残さない
独立性 Isolation 同時に実行しても互いに影響しない
耐久性 Durability 確定した結果が失われない

FE試験では、完全に行うか、全く処理しなかったように取り消す とあれば、原子性を選びます。

直感的な説明

ACID特性は、銀行振込の処理で考えると分かりやすいです。

例えば、AさんからBさんへ1万円を振り込む処理を考えます。

このとき、データベースでは少なくとも次のような更新が必要です。

1. Aさんの残高を1万円減らす
2. Bさんの残高を1万円増やす

ここで大事なのは、単に「処理が動くこと」ではありません。
正しく、安全に終わることです。

原子性:途中で止まった状態を残さない

Aさんの残高だけ減って、Bさんの残高が増えないと困ります。

そのため、振込処理は、

全部成功する
または
全部取り消す

のどちらかで終わる必要があります。

これが 原子性 です。

一貫性:データのルールを崩さない

振込の前後で、データベースのルールが崩れてはいけません。

例えば、

口座残高がマイナスにならない
口座番号が存在する
入出金の合計が不自然にずれない

といったルールを守る必要があります。

このように、処理の前後でデータの整合性を保つ性質が 一貫性 です。

独立性:同時に処理しても結果がおかしくならない

同じ口座に対して、ATM、ネットバンキング、窓口処理が同時に動くことがあります。

そのとき、処理が互いに割り込んで、残高計算がずれてはいけません。

同時に実行しても、順番に処理した場合と同じ結果になるようにする性質が 独立性 です。

耐久性:確定した結果を失わない

振込が完了し、コミットされたあとにシステム障害が起きたとします。

それでも、確定した振込結果は失われてはいけません。

このように、正常終了した処理結果を障害後も残す性質が 耐久性 です。

ACID特性は、4つを別々に丸暗記するより、
1つの振込処理を安全に終わらせるための条件 として見ると覚えやすいです。

定義・仕組み

トランザクションとは、データベースに対する一連の処理を、ひとまとまりの単位として扱う考え方です。

例えば、振込処理では「出金」と「入金」を別々の処理としてではなく、1つのトランザクションとして扱います。

トランザクション開始
  Aさんの残高を減らす
  Bさんの残高を増やす
コミット

すべての処理を確定することを コミット といいます。

途中で問題が起きたときに、処理前の状態へ戻すことを ロールバック といいます。

成功した場合:コミットして確定
失敗した場合:ロールバックして取り消し

ACID特性は、このトランザクションを安全に扱うための基本的な性質です。

性質 何を守る?
原子性 処理を中途半端に残さない 出金だけ成功した状態を残さない
一貫性 データのルールを守る 残高や口座情報に矛盾を残さない
独立性 同時実行の影響を防ぐ 複数の振込が同時でも残高を正しく扱う
耐久性 確定結果を失わない コミット後の振込結果を障害後も残す

このテーマは、基本情報技術者試験の「データベース」と関係する内容です。公式の出題範囲やシラバスは、IPA:基本情報技術者試験 から確認できます。

科目Aでどう出る?

科目Aでは、ACID特性の説明文から、どの性質かを選ぶ問題が出やすいです。

特に、次の対応を押さえると選択肢を切りやすくなります。

問題文の表現 選ぶ性質
完全に行う、または全く行わない 原子性
途中まで実行された状態を残さない 原子性
データの矛盾が生じない 一貫性
整合性が保たれる 一貫性
同時に実行しても結果が等しい 独立性
順番に実行した場合と同じ結果になる 独立性
障害が発生しても確定結果が失われない 耐久性
コミット後の結果を保持する 耐久性

FE試験の選択肢では、

更新処理を完全に行うか、
全く処理しなかったかのように取り消す

とあります。

これは、処理を中途半端に残さない性質です。

したがって、判断すべき性質は 原子性 です。

どんな場面で使う?

問題文では、ACID特性の名前を直接選ぶよりも、トランザクション処理の流れを読ませる形で出ることがあります。

見るポイントは、次の3つです。

1. どこからどこまでが1つの処理か
2. 失敗したときにロールバックするか
3. 成功したあとにコミットするか

例えば、次のような処理を考えます。

トランザクション開始
  在庫数を減らす
  注文履歴を追加する
  請求情報を登録する
コミット

途中で請求情報の登録に失敗した場合、在庫数だけ減った状態を残すと困ります。

この場合は、在庫数の更新や注文履歴の追加も含めて、処理全体を取り消す必要があります。

途中で失敗
  → ロールバック
  → 処理前の状態に戻す

この読み方は、原子性の理解とつながります。

また、同じ商品に複数の注文が同時に入る場合は、在庫数の更新が互いにずれないようにする必要があります。

これは独立性の考え方と関係します。

問題文では、用語名を覚えるだけでなく、 処理の途中で何が確定し、何が取り消されるか を追うことが大切です。

よくある誤解・混同

誤解1:原子性と一貫性を同じだと思ってしまう

原子性は、処理を 全部やるか、全部やらないか です。

一貫性は、処理の前後で データのルールや整合性を崩さない ことです。

性質 見るポイント
原子性 中途半端に処理が残っていないか
一貫性 データに矛盾が残っていないか

FE試験で「完全に行う」「全く処理しなかったように取り消す」とあれば、原子性です。

誤解2:独立性を「別々のシステムで動くこと」と考える

独立性は、システムが別々という意味ではありません。

複数のトランザクションを同時に実行しても、互いに悪い影響を与えない性質です。

同時実行しても
順番に実行した場合と同じ結果になる

という表現が出たら、独立性を考えます。

誤解3:耐久性をバックアップ全般の話と広く考えすぎる

耐久性は、バックアップ全般を指す言葉ではありません。

ポイントは、コミットされた結果が失われないことです。

障害、停電、システム停止などが出てきても、確定済みの更新結果を保持する話であれば、耐久性です。

誤解4:ACIDの順番だけ覚えて満足してしまう

ACIDは、頭文字の順番を覚えるだけでは試験で迷います。

基本情報技術者試験では、説明文から性質を選ぶことが多いので、次の合図で切り分けます。

全部 or なし       → 原子性
矛盾しない         → 一貫性
同時実行でも安全   → 独立性
確定後に消えない   → 耐久性

まとめ(試験直前用)

  • ACID特性は、トランザクション処理を安全に行うための4つの性質
  • 全部実行するか、全く実行しない は原子性
  • データの矛盾を残さない は一貫性
  • 同時実行しても互いに影響しない は独立性
  • コミット後の結果が失われない は耐久性

© 2024-2026 stemtazoo. All rights reserved.