13

「A Graph Database –transforms a–> RDBMS」

Neo4j サイトは、RDBMS でできることはすべて Neo4j でもできることを暗示しているようです。

RDBMS の代替として Neo4j を選択する前に、いくつかの疑問に答える必要があります。


私はNeo4jに興味があります

  • データ「スキーマ」をすばやく変更する機能
  • 関係や正規化ではなく、エンティティを自然に表現する能力
  • ...非常に表現力豊かなコードにつながります(ORMよりも優れています)

これは、高性能ではなく、その機能に興味がある NoSQL ソリューションです。


質問: Neo4j には、RDBMS の代替として適さない可能性のある問題がありますか?

私は特にこれらについて心配しています:

  • アプリケーションロジックに実装しなければならないDB 機能はありますか? (たとえば、いくつかの NoSQL DB のアプリケーション層で結合を実装する必要があります)
  • O(n) よりも高速にルックアップできるように、フィールドは "インデックス化" されていますか?
  • ホット バックアップとレプリケーションを処理するにはどうすればよいですか?
  • スキーマを「変更」することや、異なるバージョンのスキーマを持つエンティティを共存させることに関する問題はありますか?
4

3 に答える 3

2

これは、モデリングと実装から IT とサポートに至るまで、すべてをカバーする非常に幅広いトピックです。特にあなたの状況の詳細がなければ、ここでこれらすべての質問に本当に答えることは不可能です. ただし、オプションと手段を模索しているようです。そこで、いくつかのシステムを実装した経験者として、いくつかの一般的な考え方をお伝えします。

誰もが、新しいデータベース パラダイムがリレーショナル データベースの代わりになると考えているようです。したがって、これらの主張を一粒の塩で受け止めてください。

私は、リレーショナル、ドキュメント、グラフという 3 つの基本モデルの観点から考えるのが好きです。問題空間に応じて、これらの 1 つまたは複数が正しい答えです。リレーショナル (SQL ベース) 以外で金融取引を行うことはありません。CMS を構築している場合は、ドキュメント DB が最適です。アプリケーションがネットワーク (道路、人、接続、ネットワークなど) をモデリングする場合、Neo4J を使用します。

生産品質に関する限り、各カテゴリには確かなオプションがあります. リレーショナルにはたくさんあります。ドキュメント データベースの場合は、MongoDB か、Apache Jackrabbit のような高レベルの JCR システムを使用します。グラフに関しては、私は Neo4j の経験しかありませんが、私にとっては堅実です。

何をするにしても、「すべての問題を解決するテクノロジーが 1 つだけある」という誇大広告を信じてはいけません。それはそこになく、あなたの思考を狭めてしまいます。

于 2014-10-23T18:03:32.027 に答える
0

Oracle などのエンタープライズ データベースを使用すると、neo の一部である場合とそうでない場合がある、非常に多くの機能が得られます。これらには以下が含まれます:

  • ACID トランザクション
  • 高可用性 / バックアップ / スタンバイ
  • コストベースのオプティマイザーを使用して、SQL を使用して最も効率的な方法でデータを取得する機能 - データベースは、最新の統計に基づいてデータを取得するための最良の方法を決定します
  • スケーラビリティ、パーティショニング
  • サポート
  • 安全

アプリケーションのほとんどの機能を自分でコードに実装し、rdbms が提供する構造と高度な機能を必要としない場合、またはデータ構造がグラフベースのデータベースにより適している場合は、ぜひネオを試してみてください. ほとんどの企業アプリが従来の rdbms サーバーの 1 つを使用するのには理由がありますが、将来的には常にそうであるとは限りません。

于 2014-07-29T18:50:16.097 に答える