データベースのACID特性について
データベースの信頼性を保つ上で重要な概念に「ACID特性」があります。これはデータベースのトランザクション処理が持つべき特性をまとめたもので、以下の4つの性質の頭文字から構成されています。
ACID特性の概要
略語 | 意味(日本語) | 意味(英語) |
---|---|---|
A | 原子性 | Atomicity |
C | 一貫性 | Consistency |
I | 独立性・分離性 | Isolation |
D | 永続性・耐久性 | Durability |
1. 原子性(Atomicity)
トランザクションが複数の処理から構成される場合、それらの処理はすべて成功するか、すべて失敗するかのどちらかとなり、一部だけ成功することはありません。
- 具体例:銀行の振込処理で送金処理と入金処理がどちらも完了するか、どちらも実行されないかのどちらかになること。
2. 一貫性(Consistency)
トランザクション実行前後でデータベースが矛盾しない状態を保つことです。
- 具体例:口座間の送金後、送金元と送金先の合計金額が変わらないこと。
3. 独立性・分離性(Isolation)
同時に複数のトランザクションが実行される場合でも、それぞれのトランザクションが互いに干渉せず、独立して実行されることです。
- 具体例:複数ユーザーが同時に銀行口座を操作しても、それぞれの操作が相互に影響を与えず正しく処理されること。
4. 永続性・耐久性(Durability)
トランザクションが一度コミット(成功)した場合、その結果がシステムの障害などによって失われないように永続的に記録されることです。
- 具体例:銀行の振込処理が成功した後、サーバが障害を起こしても送金記録が消えず、後から参照できること。
ACID特性の重要性
ACID特性を守ることで、データベースの信頼性や整合性を確保できます。銀行システム、在庫管理システムなど重要なデータを扱うシステムでは特に重要となります。
一方で、高い性能が求められる場合や、分散型データベースなど一部のNoSQLでは、ACID特性の一部を緩和し、性能向上を図ることもあります。