トランザクション・ACIDとは?原子性(All or Nothing)

公開: 更新: カテゴリ: テクノロジ系

30秒で結論

トランザクション・ACIDとは(全体像)

トランザクションとは、データベースで、いくつかの処理を「ひとまとまり」として扱う、処理の単位のことだ。

銀行振込でたとえると分かりやすい。「Aさんの口座から1万円引く」と「Bさんの口座に1万円足す」は、セットで1つのまとまり。もし片方だけ実行されたら、お金が消えたり増えたりして大変だ。だから、ひとまとまりで扱う。

このトランザクションが守るべき4つの性質が、ACIDだ。

ここで一番のポイント。ACIDは4つの性質(A・C・I・D)だ。「ACIDは3つの性質」と思い込むと誤りになる。


詳しく:原子性(All or Nothing)

ここが心臓部。4つの性質を表で押さえよう。

ACIDの4つの性質

性質やさしい意味
A:原子性全部実行するか、全部取り消すか(All or Nothing)
C:一貫性処理の前後で、整合性が保たれる
I:独立性同時の処理が、互いに影響しない
D:永続性完了したら、結果は確実に残る

とくに大事なのが、原子性(A)。これは、ひとまとまりの処理を、全部実行するか、全部取り消すか(All or Nothing)という性質だ。途中で失敗したら、それまでの処理を取り消して、なかったことにする。

振込でいえば、「出金」と「入金」のどちらか片方だけが実行される、ということが起きないようにする。だから、お金が消えたり、増えたりしない。

わかりやすく言い換えると

身近なたとえで整理しよう。

トランザクションは、「振込の出金と入金のように、セットで1つとして扱う処理のまとまり」のイメージ。

ACIDは、「トランザクションが守る4つの性質。原子性・一貫性・独立性・永続性」こと。要するに、4つそろって、安全な処理になる。

原子性は、「全部やるか、全部やめるか(All or Nothing)。途中で失敗したら、なかったことにする」こと。つまり、中途半端な状態を残さない。


試験のツボ

🔴 一番出る:ACIDの4つの性質

①A:原子性、C:一貫性、I:独立性、D:永続性

②ACIDは「4つ」の性質(3つではない)

🔴 次に出る:原子性(All or Nothing)

①全部実行するか、全部取り消すか

②途中で失敗したら、なかったことにする(振込の出金と入金)

🟡 押さえると安定:トランザクションの正体

①データベースのひとまとまりの処理の単位

②セットで1つとして扱う(片方だけ、を防ぐ)


よくある間違い

「ACIDは、3つの性質のことだ」→ ✗  ACIDは4つの性質(原子性A・一貫性C・独立性I・永続性D)。

「原子性は、処理を途中まで実行して、そこで止めてよい性質だ」→ ✗  原子性は、全部実行するか、全部取り消すか(All or Nothing)。中途半端な状態を残さない。

「トランザクションは、1つの処理だけを指し、まとまりではない」→ ✗  トランザクションは、いくつかの処理をひとまとまりとして扱う単位。


試験での出題パターン

実際の問題でたしかめてみよう。

オリジナル問題1(トランザクションの正体)

📝 オリジナル問題 1 トランザクションの正体

トランザクションに関する次の記述のうち、最も適切なものはどれか。

  1. 社員の出退勤を記録して、毎月の給与を計算するためのしくみだ
  2. 取引先へ毎月の請求書を郵送する、決まった事務作業のことを指す
  3. 完成したシステムを宣伝して、より多く売るための広告活動である
  4. データベースで、ひとまとまりとして扱う処理の単位のことである
エーアイコアラ
エーアイコアラ 解答・解説

解答は 4 です。

トランザクションは、データベースの、ひとまとまりとして扱う処理の単位なのです。振込の出金と入金がセット、のイメージなります。

選択肢1は給与計算、選択肢2は請求書の事務、選択肢3は広告で、どれも違うのです。

選択肢判定理由
1給与計算のしくみではない
2請求書の事務の話
3広告活動ではない
4ひとまとまりとして扱う処理の単位で正しい

オリジナル問題2(原子性)

📝 オリジナル問題 2 原子性

ACIDの原子性に関する次の記述のうち、最も適切なものはどれか。

  1. 処理を全部実行するか、全部取り消すかのどちらかになる性質だ
  2. 社員の給与を計算するときだけ、関係するとされているものである
  3. 取引先へ請求書を郵送するときだけ、関係するとされているのである
  4. 処理を途中まで実行して、そこで止めてよい性質なのである
エーアイコアラ
エーアイコアラ 解答・解説

解答は 1 です。

原子性は、全部実行するか、全部取り消すか(All or Nothing)の性質なのです。途中で失敗したら、なかったことにするなります。

選択肢2の給与、選択肢3の請求書、選択肢4の「途中で止めてよい」は、いずれも違うのです。

選択肢判定理由
1All or Nothingの性質で正しい
2給与計算で関係するのではない
3請求書のときだけではない
4途中で止めず、全部か全部取消

オリジナル問題3(ACIDの数)

📝 オリジナル問題 3 ACIDの4つの性質

ACIDに関する次の記述のうち、最も適切なものはどれか。

  1. 社員の給与の計算しだいで、性質が決まるとされているものである
  2. 取引先への請求書の枚数しだいで、性質が決まるとされているのだ
  3. 原子性・一貫性・独立性・永続性という、4つの性質のことである
  4. ACIDは、3つの性質のことだとされているものなのである
エーアイコアラ
エーアイコアラ 解答・解説

解答は 3 です。

ACIDは、原子性・一貫性・独立性・永続性という、4つの性質なのです。ACIDは4つ、と覚えるとよいなります。

選択肢1の給与、選択肢2の請求書、選択肢4の「3つの性質」は、いずれも違うのです。

選択肢判定理由
1給与計算で決まるのではない
2請求書の枚数で決まるのではない
34つの性質(A・C・I・D)で正しい
4ACIDは4つの性質

まとめ

押さえどころ

次に学ぶ


執筆: SikakuQuest編集部

勉強は、クエストになった。

資格の勉強を、冒険に変えるRPG学習アプリ

App Storeで見る