なぜ Nosql は酸性ではないのか

公開: 2022-11-19

NoSQL データベースが「酸性」であるかどうかについては、多くの議論があります。 NoSQL データベースが酸性であることに反対する主な理由は、NoSQL データベースが従来のリレーショナル データベースのすべての機能をサポートしていないということです。 NoSQL データベースは、多くの場合、リレーショナル データベースよりもスケーラブルで使いやすいように設計されていますが、リレーショナル データベースをより堅牢にするいくつかの機能が犠牲になっています。 たとえば、NoSQL データベースは通常、リレーショナル データベースの主要な機能であるトランザクションをサポートしていません。 これは、NoSQL データベースを使用している場合、リレーショナル データベースで慣れている機能の一部を放棄しなければならない場合があることを意味します。

NoSQL データベースは ACID に準拠していません。 順応性があり、柔らかく、一貫しているという意味での一貫した心の状態。 その結果、Amazon がこの機能を使用した場合、いつでも Amazon から本を購入できますが、いつ満杯になるかを予測することはできません。 これらは、ブリューワーの定理に反論することを目的としています。

Oracle、MySQL、PostgreSQL、および Microsoft SQL はすべて、トランザクションでACID プロパティをサポートできます。 典型的な NoSQL ストーリーを見てみましょう。

NoSQL データベースを使用して、 ACID データを保存できます。 元の設計では、システムには DBMS の「管理システム」コンポーネントが含まれていませんでした。

Nosqlには酸性の特性がありますか?

画像提供 – https://dotnettutorials.net

NoSQL の特定の実装に依存するため、この質問に対する決定的な答えはありません。 一部の NoSQL データベースには酸性プロパティがありますが、他のデータベースにはありません。

原子性という用語は、複数の操作がない場合にトランザクションを実行する必要があるという事実を指します。 データの一貫性とは、データベース内のすべてのデータが、トランザクションが行われたときとまったく同じように記録されなければならないという事実を指します。 隔離は、他の取引が進行中の作業に干渉するのを防ぐ完全な機密保持の状態であると考えています。 トランザクションの持続性は、そのトランザクションと共に完了した他のトランザクションが引き続き機能することを示します。 データベース管理に対する NoSQL アプローチは、厳格な ACID ルールに反しています。 そのため、厳密な環境で実行したい場合、NoSQL データベースは最適な選択ではありません。 ACID 標準に準拠するデータベースは、一般的に信頼性と効率性が高く、ユーザーに一貫したエクスペリエンスを提供します。


Nosql は酸または塩基ですか?

画像提供 – https://infodecisionnel.com

リレーショナル データベースの ACID (原子性、一貫性、分離性、耐久性) プロパティのすぐ後には、NoSQL データベースの ACID (属性、一貫性、分離性、耐久性) プロパティが続きます。

ACID を生成するデータベースには強い需要があります。 ビッグデータの時代には、拡張可能なテクノロジーが必要です。 NoSQL データベースは、大規模で複雑なデータをより効率的に処理できます。 従来の RDBMSとは対照的に、これらのソリューションは表形式の関係を使用しないため、ストレージに関して同じ問題を引き起こすことはありません。 一貫性よりも可用性を優先するのは自然なことです。 ACID モデルが過剰な場合は、base プロパティを使用することをお勧めします。 一貫性は必要だが、厳密な構造を好む場合は、リレーショナル データベースが適しています。 多くのシステムのように、すべてのシステムで RDBMS と NoSQL のどちらかを選択する必要はありません。

NoSQL データベースは、ACID トランザクションに依存しない新しいタイプのデータベースです。 (広義には、利用可能、ソフト状態、および結果整合性として定義されます。) データは、一般的な意味で一般的に利用可能です。 リクエストに回答がない場合、リクエストが拒否される可能性があります。 これは、ACID トランザクションを実行する最も一般的なタイプのデータベース システムです。 MySQL、PostgreSQL、SQLite、SQL Server、およびその他のデータベース データベースがすべてサポートされています。 オブジェクト指向データベースは、ACID トランザクション処理を必要としない新しい種類のデータベースです。 ただし、リクエストに対してレスポンスを受信した場合、レスポンスはデータの可用性を保証できません。 データが取得できない場合は、ある時点で利用可能になります。 ソフト状態では、データの更新は永続的ではありません。 この機能により、継続的なデータ更新が可能になります。 一貫性が重要: 更新が頻繁に行われる場合でも、データが常に最新であることを保証します。

Mongodb の Acid プロパティのサポート

一貫性という用語は、データがデータベースに書き込まれるときに、データが複数の読み取り操作に対して一貫性を維持する期間を指します。 データベースは、前述のように、同時に実行されるすべてのトランザクションが相互に影響を与えないことを保証できる必要があります。 データベースの耐久性は、停電やその他の壊滅的なイベントの後でも機能できることを示しています。 つまり、MongoDB は ACID 準拠のデータベースではありませんが、原子性や耐久性などの重要な ACID 特性の一部をサポートしています。

Mongodb が Acid でない理由

MongoDB はトランザクションをサポートしていないため、酸性ではありません。 取引は、アシッド コンプライアンスの基本的な部分です。 また、MongoDB は、Acid Compliance のもう 1 つの重要な部分である外部キーもサポートしていません。

MongoDB 4.0 は、マルチドキュメント ACID トランザクションを追加します。 PostgreSQL はネイティブの ACID 準拠をサポートしていますが、MongoDB は長い間それを行うことができませんでした。 MongoDB が ACID を最優先事項にしているのか、それともユーザーが気にかけているのかは不明です。 MongoDB のバージョン 4.0 には、マルチドキュメント ACID トランザクションの保証が含まれています。 Eliot Horowitz によると、ドキュメント モデルは ACID トランザクションの必要性を排除します。 製品、サーバー、およびエンタープライズ ツール担当副社長である Grigori Melnik 氏は、これが MongoDB への新しい書き込み方法であると考えています。 MongoDB の V4.2 リリースでは、マルチシャードの複数の実装にわたってトランザクションが可能になります。

MongoDB は過去にデータ用に多数のストレージ エンジンをサポートしてきましたが、トランザクションに使用できるのは WiredTiger だけです。 ACID が MongoDB にとって重要なのはなぜですか? EDB の ACID トランザクションへのコミットメントについて何を言えるかはわかりませんが、1 つ言えることは、ACID トランザクションを非常に真剣に受け止めているということです。 No.7 のステータスにもかかわらず、SQL などの標準的なクエリ言語を使用することで大きな価値が得られるという事実は変わりません。 データにアクセスするためのアプリケーションを開発するにつれて、スプロール パターンでそれらを構築することを余儀なくされ、複雑さが増します。 最も人気のある汎用データベースである PostgreSQL は、引き続き最良の選択です。

Mongodb は Acid に完全に準拠していますか?

一方、マルチインストゥルメント ACID トランザクションは、それらを必要とするユースケースで利用できます。 彼らは、通常は複数ドキュメントのトランザクションを必要としない方法でデータをモデル化できるという柔軟性を高く評価していますが、そうした場合に可能になります。

NosqlはAcidをサポートしていますか

Nosql データベースは、acid トランザクションをサポートしていません。 これは、トランザクションが正しく処理されることを保証できず、トランザクション中にデータが失われたり破損したりする可能性があることを意味します。

Nosql データベース: 基本モデルは耐久性と一貫性が向上

ほとんどの Nosql データベースは ACID プロパティをサポートしておらず、乱用に耐え、より耐久性のある基本モデルを使用することを好みます。