データベース工学におけるBASEを優先してACIDを放棄する

リレーショナルデータベースは、信頼性と一貫性を中心に設計されています。 それらを開発したエンジニアは、 ACIDモデルの 4つの原則が常に維持されることを保証するトランザクションモデルに焦点を当てました。 しかし、新しい非構造化データベースモデルの登場により、ACIDが頭に浮かぶようになっています。 NoSQLデータベースモデルは、高度に構造化されたリレーショナルモデルを避け、柔軟なキー/バリューストアアプローチを採用しています。 この非構造化データへのアプローチには、ACIDモデルの代わりにBASEモデルが必要です。

ACIDモデルの基本理念

ACIDモデルには4つの基本原則があります:

トランザクションのアトミック性は、各データベーストランザクションが「すべてか何か」の実行アプローチを採用する単一のユニットであることを保証します。 トランザクション内の文が失敗すると、トランザクション全体がロールバックされます。

リレーショナル・データベースはまた、各トランザクションとデータベースのビジネス・ルールとの一貫性を保証します。 アトミックトランザクションの要素によってデータベースの整合性が損なわれると、トランザクション全体が失敗します。

データベースエンジンは、同時にまたはほぼ同時に発生する複数のトランザクション間の分離を強制します。 各トランザクションは、他のすべてのトランザクションの前または後に行われ、トランザクションが最初に認識するデータベースのビューは、トランザクション自体によって結論が変わるだけです。 他のトランザクションの中間生成物をトランザクションが参照することはありません。

最終的なACIDの原則である耐久性により、トランザクションがデータベースにコミットされると、トランザクションはバックアップとトランザクションログを使用して永続的に保持されます。 障害が発生した場合、これらのメカニズムを使用してコミットされたトランザクションを復元することができます。

ベースの基本原則

一方、NoSQLデータベースは、ACIDモデルが過度に使用されている状況や、実際にはデータベースの動作を妨げる状況を抱えています。 代わりに、NoSQLは、適切にBASEモデルとして知られているより柔らかいモデルに依存しています。 このモデルは、NoSQLが提供する柔軟性と、非構造化データの管理およびキュレーションと同様のアプローチに対応しています。 BASEは3つの原則で構成されています。

基本的な可用性 。 NoSQLデータベースアプローチは、複数の障害が発生してもデータの可用性に重点を置いています。 これは、高度に分散されたデータベース管理手法を使用することで実現します。 単一の大きなデータストアを維持し、そのストアのフォールトトレランスに焦点を当てるのではなく、NoSQLデータベースは、高度なレプリケーションで多くのストレージシステムにデータを分散します。 万一、障害によってデータ・セグメントへのアクセスが中断された場合でも、必ずしもデータベースが完全に停止するとは限りません。

ソフトステート 。 BASEデータベースは、ACIDモデルの一貫性要件をほとんど完全に放棄します。 BASEの背後にある基本的な概念の1つは、データの一貫性が開発者の問題であり、データベースによって処理されるべきではないということです。

最終的な一貫性 。 NoSQLデータベースの一貫性に関する唯一の要件は、将来のある時点でデータが一貫した状態に収束することを要求することです。 しかし、いつ起こるかは保証されていません。 これは、前のトランザクションが完了してデータベースが一貫した状態に収束するまで、トランザクションの実行を禁止するACIDの即時の一貫性要件から完全に逸脱しています。

BASEモデルはあらゆる状況に適しているわけではありませんが、リレーショナルモデルを厳密に遵守する必要のないデータベースのACIDモデルに代わる柔軟性のある代替モデルです。