ACID特性・BASE特性

1.データベーストランザクション

 トランザクションとは
   DBを更新するとき、途中で区切ることのできない処理のまとまりの事

   データ処理の整合性を保つためには(all-or-nothing)
     全て成功するか、何も行われず元に戻ることが重要

   データベースは
     データの一貫性を維持し、
     同時に多くのユーザーからの要求を確実に処理することが必要

   データベースのトランザクションが必ず満たすべき
     基本的な特性をACID特性という

2.4つのACID特性

 Atomicity(原子性)
   一連の操作がすべて成功するか、すべて失敗することを保証する
     トランザクション途中でエラーが発生した場合でも、
     データベースは一貫した状態を維持する

 Consistency(一貫性)
   トランザクションがDBを一貫性のある状態から
     別の一貫性のある状態へ遷移することを保証する
   トランザクション開始前後で、
     データベースが一定の規則を守っていることを確認する

 Isolation(独立性)
   複数のトランザクションが同時に行われている場合でも、
     各トランザクションは他のトランザクションから
     独立していることを保証する
   トランザクションが干渉しあうことなく、
     正確かつ安全にデータの操作を行うことが可能になる

 Durability(耐久性)
   一度トランザクションが成功した場合、
     その結果は永続的にデータベースに反映されることを保証する
   システム障害や電源断など予期せぬ事態が発生したとしても、
     コミットされたデータは失われない

3.データの信頼性と整合性

 DBの操作中に予期せぬ障害やエラーが発生した場合、
   データの不整合や破損のリスクも同時に発生する

   しかし、ACID特性の採用により、
     DBはこれらの問題に対して強固な防御線を構築できる

   ACID特性を持つDBはデータの一貫性が確保される

 DBはACID特性を備え、
   多くのユーザーがデータベースに同時にアクセスしている状況でも、
   各ユーザーの操作が互いに干渉しないよう保証する

4.BASE特性

 ACID特性とは対照的に、
   可用性や性能を重視した特性を持つ分散システムの特性

 基本的には常に利用可能で、常に整合性を保っている必要はなく、
   一時的に一貫性のない状態を許容して、
   結果的には整合性が取れている状態に至る

5.3つのBASE特性

 可用性や性能を重視した特性を持つ分散システムの特性
   NoSQLの特徴を表している概念

 BA(Basically Available)
   基本的にいつでも利用できる

 S(Soft-State)
   常に整合性を保っている必要はない

 E(Eventual Consistency)
   結果的には整合性が保証される

6.補足

 CAP定理
   分散コンピュータシステムのマシン間の情報複製に関する定理