トランザクションモデルであるACIDとBASEについて述べる。
##ACIDとは
ACIDは、主にリレーショナルデータベース(RDB)で用いられるトランザクションの4つの性質を表す。
特性 | 意味 | 概要 |
---|---|---|
Atomicity(原子性) | トランザクションはすべて成功するか、すべて失敗する | All or Nothing - 中途半端な状態は残らない |
Consistency(一貫性) | データベースの整合性制約が常に保たれる | 制約・トリガー・ルールが維持される |
Isolation(分離性) | 並行実行されるトランザクションが互いに影響しない | 同時実行でも逐次実行と同じ結果 |
Durability(永続性) | コミット済みの変更は永続的に保存される | システム障害でも変更は保持される |
##BASEとは
BASEは、主にNoSQLや大規模分散システムで用いられる、ACIDよりも緩やかな整合性モデルである。BASEは次のような3つの特性を持つ。
特性 | 意味 | 概要 |
---|---|---|
Basically Available(基本的可用性) | ある程度常に応答を返す | 完全な整合性がなくても利用可能 |
Soft state(ソフトステート) | 状態は変化しうる | データが一時的に不整合でも許容 |
Eventual consistency(最終的整合性) | 最終的には整合性がとれる | 時間が経てば整合することを前提 |
##ACID vs BASE:設計思想の違い
比較軸 | ACID | BASE |
---|---|---|
整合性 | 強い整合性(Strong) | 最終的整合性(Eventual) |
可用性 | 障害時に低下する可能性 | 高可用性を維持 |
分散性 | 分散環境では制約が多い | 分散システム向けに設計 |
レイテンシ | 一貫性保証のため遅延発生 | 低レイテンシを優先 |
トレードオフ | Consistency > Availability | Availability > Consistency |
適用分野 | 金融・業務系・トランザクション | Webサービス・スケーラブルアプリ |
##まとめ ACIDはリレーショナルデータベースのトランザクションにおける強い整合性を提供し、BASEは分散システムでの柔軟な整合性を実現する。アプリケーションの要件に応じて、どちらのモデルを選択するかが重要である。ACIDは金融や業務系アプリケーションに適し、BASEはWebサービスやスケーラブルなアプリケーションに向いている。
##参考文献・関連資料