ACID
Atomicity, Consistency, Isolation, Durability
ACID(ACID特性)とは
ひとことで
トランザクションが満たすべき4つの性質の頭文字。原子性(全部実行するか全く実行しないか)、一貫性(データに矛盾がない)、独立性(同時に実行しても互いに影響しない)、耐久性(確定した結果は障害が起きても失われない)。
たとえると
お店の会計にたとえると、原子性は「代金を受け取ったら必ず商品を渡す」、一貫性は「レジのお金と売上記録が常に合っている」、独立性は「隣のレジの会計と混ざらない」、耐久性は「閉店後に停電してもその日の売上記録は消えない」ということです。
現場ではこう使う
情報系の専門学校で学ぶ学生が、チケット予約システムの課題に取り組みました。二人が同時に最後の1席を予約しても、同じ席が二重に売れないよう独立性を確保し、予約の途中でエラーが起きたら全体を取り消す原子性も実装しました。講師からは、確定した予約はサーバーが停止しても消えない耐久性が必要だと指摘されました。
試験のポイント
EXAM POINT4つの性質の名前と意味の組み合わせが問われます。特に原子性(Atomicity:全部か無か)と一貫性(Consistency:矛盾のない状態)、独立性(Isolation:同時実行しても結果が変わらない)の区別に注意しましょう。耐久性(Durability)はログやバックアップによる復旧と関係します。
混同しやすい用語との違い
- Transactionひとまとまりで行う処理の単位そのもの。ACIDはそれが満たすべき性質
- Normalizationデータの重複をなくす表の設計手法。ACIDは処理の性質