2012-03-02 21 views
1

私は過去にかなりMySQLとMsSQLを使用してきました。今私はMongoDBも使用しています。どのフィールドが変化し続けているかを非常に柔軟に扱うことができます。アジャイル開発には非常に適しています。ドキュメント指向データベースまたはリレーショナルデータベース、どのように選択できますか?

ドキュメント指向のデータベースは、開発者にとっては使いやすいと思われ、読み込みアクセスも高速ですから、どちらのケースでもユースケースが他のものより優れているという例がいくつかあります?

+0

これは非常に良い質問です。 –

+0

しかし、誰も答えを知らないようです! – hllau

+0

これは数日前に[dba.stackexchange.com](http://dba.stackexchange.com/questions/13744/database-suggestion-for-a-social-network-knowledge-base-community/14107)に掲載されました。 )。 –

答えて

1

私はデータエンジニアとして働いています。私はドキュメントデータベースと古典的なRDBMSで作業する必要があります。私はアプリケーションコード、ETLを行う必要があり、私はドキュメントデータベースからjsonを引き出し、レポーティングのためにデータをロードする完全なリレーショナルスキーマを構築するカスタムラッパーを作成しました。

まず、ドキュメントデータベースは、特定のアクティビティに対して優れた機能を提供します.RDBMSは、ドキュメントデータベースには欠けていることがあります。

RDBMSのルール、トリガーなどを使用して、データを非常に明確に制御する機能を提供しています。ほとんどのドキュメントデータベースではこれが提供されていないため、疑問が生じます。彼らが従うルールが増えるほど、柔軟性が失われ、それが大きな利益となります。

ドキュメントデータストアで実行する問題の1つは、トップレベルのエントリポイントを慎重に選択する必要があるか、複数のデータストアを作成する必要があります。ほとんどの場合、結合ステートメントはありませんGoogleが最近論文を書いたツール)。

私は、データの破損を防ぐために、データベース層でデータ制御を行うべきだと考えています。それから、私はデータの男です。アプリケーション、SEO、およびビジネスの人々は、これにはしばしば同意しません。このように、私は受け入れると移動し、報告の人々が彼らが必要なものを教えてすべてを一緒に働くようにしようとします。

+0

あなたはdemostrateできるユースケースはありますか? –

+0

私はユースケースを記述することができます。私は今夜​​(おそらく少数の)飲み物をいくつか持っていたので私に負担してください。しかし、私は直接詳細に行くのではなく、説明しようとします。第1に、うまく設計された制約を持つよく設計されたデータベースは、ほとんどすべてのユースケースをカバーできます。さらに、トリガーは、標準のドキュメントDBから欠けているあらゆる種類の機能を提供します。たとえば、MongoDBにはないトリガーがあれば、その機能をアプリケーションにコーディングする必要があります。 PostgreSQLにはNOTIFYとトリガがあります。これは考慮する必要があります。 – Horus

+0

私はもっと詳しく説明することができますが、残念ながら、これらの決定はあなた自身で行う必要があります。スキーマレスデータベースを使用したい場合は(事前にデータ構造について考える必要はありません)、ドキュメントDBを使用してください。一方、私はアプリケーションをコーディングする前に自分のデータ構造について考える傾向があります。私のユーザーデータはどのように見えるかなどです。私は個人的にこれが良い方法だと思っていますが、それは私のためだけです。一部の人々は、まず経路と行動を考える。あなたはどのように思いますか?その後、あなたがすることを決める。私は常に最初にRDBMSに焦点を当てます。 – Horus

関連する問題