web-dev-qa-db-ja.com

NoSQLデータベースがACIDに準拠していないのはなぜですか?

ACIDプロパティがないことは、データベースがクラスターで適切に機能することを意味します。しかし、ACIDは非常に基本的なものです。原子性、一貫性、分離性、持続性(ACID)がない場合、データベースはどのようにうまく機能しますか?

5
Krekurul

原子性、一貫性、分離性、耐久性がない場合、データベースはどのようにうまく機能しますか?

彼らはできません。これが、これらの機能が作成された理由です。

場合によっては、水平方向にスケーリングする必要があるか、スケーリングが最初の主要な関心事になるため、これらの機能の欠如を回避できます。今は一貫性を必要としないかもしれません、あなたは 後でそれを処理することができるかもしれません。 。すべてのデータを順番に返す必要はないかもしれません。クラスター上でクエリを並列実行する必要があるかもしれません。または、データ自体がかなり価値がない場合もあります。

ただし、これらのタイプのシステムを実装する主要な製品を見てください。一般的に、これらの製品は問題があり、エラーがたくさんあります。 Facebookの壁に何かを投稿して、消えて何度も現れるのを見たことがありますか?または、あなたがコメントしている会話を長期間失ってしまい、戻ってきますか? "NoSQL"を使用してデータを管理し、PHP= C++にコンパイル)を行うために何百人もの人々が働いています。特に機能しませんwellそれは機能し、ほとんどの企業にとって、代替品を開発できる範囲を超えています。

2
Evan Carroll

ACIDプロパティがないことは、データベースがクラスターで適切に機能することを意味します。しかし、ACIDは非常に基本的なものです。アトミック性、一貫性、分離性、持続性(ACID)がない場合、データベースはどのようにうまく機能しますか?

私はヴェラーチェ、エヴァン・キャロル、ランドルフ・ウェストの何も捨てません。

Eric Brewerブログの神話に従って ここNoSQLPastPresentFutureEric Brewerには、[〜#〜]ベース[〜#〜]Basically AvailableSoft StateEventually Consistent

また、アトミック性、一貫性、分離性、持続性(ACID)がない場合、NoSQLデータベースはどのように機能するのでしょうか。私の専門的なdbaの知識によれば、このジャンクションで言うのは早すぎるためです。しかし、私はあなたと共有したいですDataStax CEO Billy Bosworthブログ ここ からInfoWorld New Tech Forum どこ "Top 5 misconceptions about ACID compliance in a nonrelational world. "は、いくつかのクエリを解決するのに役立ちます

  1. 誤解その1:ACIDに準拠しないとオンラインアプリケーションを構築できない

  2. 誤解その2:ACIDはオールオアナッシングの命題

  3. 誤解その3:結果の一貫性が「ACID」の「C」に違反する

  4. 誤解その4:データベースとアプリケーションは1対1の関係にあるため、リレーショナルテクノロジとNoSQLテクノロジのどちらかまたは両方

  5. 誤解その5:NoSQLデータベースは「Webスケール」アプリケーション専用です。その他はすべてACID準拠のテクノロジーを使用

なぜ重要なのかby Eric Brewerは、[〜#〜] cap [〜#〜](一貫性の可用性、パーティションの許容度)の定理を理解し、新しい科学技術。同時に、開発者、アーキテクト、およびデータベース管理者は、このようなトレードオフについての理解を深めています。少なくとも、彼らは私たちが万能の世界に住んでおらず、適切な仕事に適切なテクノロジーを採用しなければならないことを認識しています。関係の誤解から心を解放する人々は、多様なデータベーステクノロジーのこの新しい世界によって提供される力と機会を利用します。

さらなる参考資料 NoSQLの傑作:最高のドキュメントデータベースhere および Here

2

NoSQLの大きな点は、「 結果整合性 」または「楽観的レプリケーション」の概念です。

データベース内の何も実際に挿入、変更、削除の順序に依存していないと仮定すると、パフォーマンスが大幅に向上します。

結局のところ、パフォーマンスは機能です。

1
Randolph West

人々が「クラスター」という言葉を見て、これが次の「新しいもの」であり、したがって「良いもの(tm)」であるに違いないと考える前に、Ted Dziubaの記事を読んでください here =。タイトルは、彼がNoSQLデータベースをどのように扱っているかについての手掛かりをあなたに与えるかもしれません。

NoSQLデータベースは [〜#〜] acid [〜#〜] ではなく、 [〜#〜] base [〜#〜] (*)です!基本的に利用可能、ソフト状態、結果的に一貫性があります!つまり、Amazonがこれを使用した場合、常に書籍を「購入」できるかどうかは保証されません。ご注文を全うするための在庫がありました!それらは「打ち勝つ」ための試みです ブリューワーの定理 !ええと、何ジムですか? 「あなたがたは、物理学のジム法を破った!」 (ジーンロッデンベリーへの謝罪で:-))。

Michael Stonebraker データベーステクノロジーの話を聞くのは本当のことで、学術面と商業面の両方で成功しています。

彼はNoSQLの基本的な前提である OldSQL が壊れているということに同意します!彼は、ACIDの保証を捨てることが文字通り赤ちゃんを風呂水で捨てることであることを(強制的に)主張するだけです。

彼が主張しているのは、特にOracle、MS SQL Server、PostgreSQL、MySQLなどのシステムの ロックとトランザクションのオーバーヘッド のないACID準拠のデータベースです。また、「 廃止されたソフトウェアのホーム :-)に送信することも推奨しています。

どのように、あなたは尋ねるか?さて、2つの方法:

NewSQLに関する彼のポイントは、OLTPアプリの場合、シェアードナッシングシャードアーキテクチャ(彼の VoltDB -HStoreに基づく)を確認する)とOLAP専用の円柱状ストアが必要、つまり Vertica (彼がHPに販売したCStoreに基づく))。

実際の質問に直接回答するには、「nosqlデータベースが酸に準拠していないのはなぜですか」は、そのように設計されていないためです。 ACIDは多くの作業であり、マシンに多くのリソースを要求しますが、 Google でもACIDとSQLに戻らざるを得ません!

NoSQLは基本的な制約から抜け出そうとする試みであり、結果として失敗します。特定の分野でニッチがないと言っているわけではありませんが、常にそれだけです。ニッチです!

0
Vérace