目次

    ACIDとは何か?

    ACIDは4つの言葉の頭文字をとったもので、
    ・Atomicity(原子性)
    ・Consistency(一貫性)
    ・Isolation(分離性)
    ・Durability(永続性)
    この4つが、データベースのトランザクションを安全に動かすための柱になっています。

    4つの特性を順番に見てみよう 

    ① Atomicity(原子性) — 「全部やるか、全部やらないか」 

    想像してみてください。あなたがECサイトで商品を購入しようとして、決済は成功したのに注文登録だけ失敗した… 
    おかしいですよね。 
    原子性は「トランザクションの中の処理は、全部成功するか、全部取り消すかのどちらかにする」という考え方です。 
    途中でエラーが出たら、すべてなかったことに戻します(これをロールバックといいます)。

    ② Consistency(一貫性) — 「前後でルールが崩れない」

    データベースには必ずルール(制約)があります。
    たとえば「在庫数はマイナスにならない」「会員IDは重複しない」などです。
    一貫性は、「処理の前後でそのルールが必ず守られている状態」を保証します。
    つまり、どんな取引をしても、データが“変”な状態になることはありません。

    ③ Isolation(分離性) — 「同時にやっても、順番にやったときと同じ結果」

    これは少し想像がしやすいかもしれません。
    たとえば2人が同時に同じ席を予約しようとした場合、分離性がなければ「2人とも予約できたことになってしまう」危険があります。
    分離性が守られていれば、最終的には片方だけがその席を確保できます。
    実際のデータベースでは「分離レベル」という設定で、この干渉の防ぎ方を細かく調整します。

    ④ Durability(永続性) — 「完了したら消えない」

     やっと注文が確定して「これで安心!」と思った瞬間に停電が起きても大丈夫。 
    永続性は、「完了(コミット)した結果は必ず保存され、障害があっても失われない」ことを保証します。 
    そのためにデータベースはディスクやログに書き込み、復旧できるように備えています。

    実際の利用シーン

    銀行や決済システム:途中失敗を防ぎ、正確な残高を保つ
    予約サイト:二重予約や重複登録を防ぐ
    在庫管理:同時購入でも在庫数が正しく反映される
    会員登録や注文処理:中途半端なデータを残さない


    まとめ

    ACID特性は、派手な機能ではありませんが、裏側でシステムの信頼性を支えるとても重要な存在です。
    もしACIDがなければ、お金やデータのやり取りは今ほど安全ではなかったでしょう
    PREV
    2025.08.12
    プロンプトで動くモックを作る:Figma Make活用術
    NEXT
    2025.08.14
    ユーザー体験ってなんだろう?