Bluemo's Brain

Search

Search IconIcon to open search

ACID特性

Last updated Unknown Edit Source

    情報科学の達人.icon データベースの講義

    • Atomicity
      • 原子性、中途半端にならない
      • これがないと、多様なエラーケースが存在するから大変
    • Consistency
      • 一貫性は処理後も保持されている
    • Isolation
      • 独立性、並列実行は直列実行と同じ結果(等価)を保証
      • 同一データを同時に参照/更新したくない
      • どうするか
        • 今自分が最新データーを操作しているか否かを判断できれば良い
          • 悲観的並行性制御
            • 最新データーの版を一つに限定(ロック)
            • 並列実行しにくいので効率は上がりにくいが、失敗することは少ない
            • ぶつかり合う可能性が高い場合に良い
          • 楽観的並行性制御
            • データ参照/更新時刻を記録しておいて、トランザクションが終わった時にもう一度チェックして他の人がアクセスしていない事を確認
            • もし他の人がアクセスしていたら、アボート(失敗)となる
              • (原子性を保証するために全取り消し)
            • ぶつかり合う可能性が低い場合に良い
        • もしくは、変わったDBMSとして最新版が複数存在しても良いという考え方のDMBSもある(git的)
          • MVCC (更新時だけ、最新版を一つに限定)
        • gitと一般的DMBSの比較
          • DBMS: ACID特性独立性について
          • git
            • 複数の最新版を許容
            • 自動マージを試みる(失敗したら手動でマージ)
          • DMBS (単一の版のみ管理)
            • マージして失敗したら手動マージ、なんてやってられない
            • 独立性はserializabilityを保証
    • Durability
      • 故障が生じても永続性を担保