3

ORMを使用するリレーショナルデータベースは、多くの点でオブジェクト指向データベースと非常によく似ていると考えるだけです。私の経験は、ORMのヒントを伴うRDMSのみに基づいているため、オブジェクト指向データベースは非常に似ているように見えますが、経験がなければ、はっきりとは言えません。

オブジェクト指向データベースとORMを使用したことがある場合、それらを比較できますか?RBMS + ORMと比較して、オブジェクト指向データベースに関連する弱点は何ですか?

4

3 に答える 3

5

RBMS + ORMと比較したオブジェクト指向データベースに関連する弱点は何ですか?

最大の弱点は、標準化の欠如です。標準API、標準クエリ言語(OQLの試みは大きな失敗でした)がないため、移植性と相互運用性のあるツール(バックアップ、アーカイブ、移行など)がありません。データに関しては、それは望ましくありません。

これは、採用の観点からOODBMSが失敗である理由と、NoSQLの動きに関係なくRDBMSがしばらく留まる理由をIMOに説明しています(OODBMSベンダーはNoSQLの動きをいくつかの後に戻ってくる機会と見なしていると感じています製品のブランド変更)。

于 2010-05-20T15:42:39.743 に答える
3

私の経験:

  • RDBMS:
    • 率直に言って、私は15年前の言語であるSQLを使用するのは好きではありませんが、実際には、一括挿入などの使用可能なものが必要な場合は強制されます(LINQ-to-EntityORMフレームワークはサポートしていません)一括挿入。したがって、SQLの一括挿入の500ミリ秒と比較して、20,000レコードの挿入には30秒かかります。最終的に、データベースの挿入にADO.NETを使用する必要があります。
    • RDBMSには、オブジェクトデータベースに比べていくつかの利点があります。つまり、データは呼び出し元のアプリケーションから独立しています(ただし、マッピングレイヤーによってすべてが遅くなり、複雑になり、脆弱になるため、これも弱点です)。
    • 結論: LINQ-to-EntityORMフレームワークとMicrosoftSQL Server2008R2で6週間過ごしました。適度に急な学習曲線。
  • オブジェクトデータベース:オブジェクトデータベース、つまり無料のオープンソースdb4oを試しました。
    • 1行のコードでオブジェクトを永続化できることを発見しました。
    • 処理するスキーマの変更はなく、機能しただけです。
    • POCO(プレーンオールドクラスオブジェクト)の即時サポート。コードでクラスを作成し、それを永続化します。Entity Frameworkでも同じことができますが、手動マッピングでは多くの作業が必要であり、非常に簡単に機能しなくなります。
    • 透過的な永続性をオンにすると、バックグラウンドで自動遅延読み込みが行われます。EntityFrameworkでの遅延読み込みが原因で読み込まれていないオブジェクトをチェックする必要がなくなります。
    • オブジェクトデータベースのパフォーマンスも印象的です。オブジェクトデータベースに1,000万行があり、インデックス作成がオンになっている場合、3列の選択で16ミリ秒になります。それはまともです。
    • 結論: 1週間後、永続化にRDBMSを使用するのと同じソリューションが得られましたが、それははるかにクリーンで、コードがはるかに少なく、保守性が高くなりました。本当に必要な場合は、サービスを使用してdb4oデータベースを同期できます。 MSSQLを使用します。

たとえばテーブル内の2億5000万行で構成される、エンタープライズの世界の非常に大規模なシステムでは、シャーディングや、クラスター化インデックスとクラスター化インデックスなどのオプションがパフォーマンスにとって重要になります。この場合、db4oは機能しません。もっとエンタープライズなものが必要になるかもしれません。ただし、オブジェクトを永続化する簡単な方法であれば、オブジェクトデータベースが適しています。SQLの学習、ORMでのマッピングの設定、MSSQLのインストールの処理、独自の一括読み込み手順の実装などのすべての作業がなくなり、クリーンでエレガントな100%マネージコードが残ります。

データベース市場は年間30億ドルの価値があり、まだ現金牛を殺す理由がないため、ベンダーがオブジェクトデータベースを採用していない理由の1つだと思います。

免責事項:私はMicrosoftまたはdb4oのいずれとも提携していません。

于 2011-02-26T12:41:07.380 に答える
2

クリスデイトは同意します:

...'オブジェクト/リレーショナル'システムは、真のリレーショナルシステムに他なりません...適切なオブジェクト/リレーショナルシステムは、適切なタイプをサポートする単なるリレーショナルシステムです...つまり、適切なリレーショナルシステムであることを意味します。これ以上でもそれ以下でもありません。

SQLと関係理論:正確なSQLコードの書き方、p 36

于 2010-05-21T13:36:16.837 に答える