原子性・一貫性・独立性・耐久性を具体例で完全理解
信頼性の高いトランザクション処理に必要な4 つの性質の頭文字。データベーススペシャリスト試験の最重要テーマ。
| 性質 | 英語 | キーワード | 実現技術 |
|---|---|---|---|
| 原子性 | Atomicity | 全か無か | ROLLBACK・UNDO ログ |
| 一貫性 | Consistency | 制約を維持 | 整合性制約・トリガー |
| 独立性 | Isolation | 干渉しない | ロック・MVCC |
| 耐久性 | Durability | コミット後は永続 | REDO ログ・WAL |
| 操作 | 原子性なし(失敗時) | 原子性あり(ROLLBACK) |
|---|---|---|
| ① 口座 A から引き落とし | 成功(-1万円) | 取り消し(元の残高) |
| ② 口座 B へ入金 | 失敗 → 1万円消失 | 取り消し(元の残高) |
| 制約 | 違反例 | 一貫性が保証する動作 |
|---|---|---|
| 残高 >= 0 の CHECK 制約 | 残高 0 の口座から引き落とし | トランザクションが失敗(制約違反) |
| 外部キー制約 | 存在しない顧客 ID で受注を挿入 | INSERT が拒否される |
一貫性はアプリケーション設計(正しい業務ルールの実装)も含む広い概念。
| 問題 | 状況 |
|---|---|
| ダーティリード | 未コミットの変更が他のトランザクションから見える |
| 反復不可能読み取り | 同じ行を 2 回読むと値が変わる |
| ファントムリード | 同じ条件で 2 回 SELECT すると行数が変わる |
独立性はロック制御や MVCC(多版同時実行制御)で実現される。
| 特性 | ACID(RDB) | BASE(NoSQL) |
|---|---|---|
| 一貫性 | 強一貫性(即時整合) | 結果整合性(Eventually Consistent) |
| 可用性 | 制約により低くなる場合も | 高可用性を優先 |
| 重視点 | 整合性・信頼性 | スケーラビリティ・可用性 |
読了ボタンを押すとトップページの進捗に反映されます